首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >正确使用ObjectDataSource

正确使用ObjectDataSource
EN

Stack Overflow用户
提问于 2008-11-19 21:38:55
回答 3查看 2.6K关注 0票数 1

欢迎光临!

我正在创建一个用户控件,它将在GridView控件中显示数据。我们使用的是n层体系结构,所涉及的数据是从数据库中检索出来的,并以ReadOnlyCollection的形式返回给我们。OurNewObject是一个类,包含几个属性和一个不接受参数的空构造函数--它位于以下名称空间中: Acme.ObjectModel。

在用户控件中,我有以下内容:

代码语言:javascript
复制
<asp:GridView ID="ourGrid" runat="server" DataSourceID="ourDataSource">
    <columns>
    <asp:BoundField DataField="Name" HeaderText="Full Name" />
    <asp:BoundField DataField="Gender" HeaderText="Gender" />
    <asp:BoundField DataField="BirthYear" HeaderText="Year of Birth" />
    <asp:BoundField DataField="JoinDate" HeaderText="Date Joined" />
  </columns>
</asp:GridView>
<asp:ObjectDataSource ID="ourDataSource" runat="server" SelectMethod="GetTopUsers" TypeName="Acme.Model.OurNewObject">
</asp:ObjectDataSource>

在用户控件背后的代码中,我有以下公共方法:

代码语言:javascript
复制
public ReadOnlyCollection<OurNewObject> GetTopUsers()
{
    return (OurDataProxy.GetJustTheTopUsers());
}

当我将用户控件放置在Web窗体上并运行它时,我会得到以下消息:

ObjectDataSource 'ourDataSource‘找不到没有参数的非泛型方法“GetTopUsers”。

所以我的问题是:

我在使用incorrectly?

  • Is
  1. 在这种情况下使用ObjectDataSource有一种更正确的方法吗?

谢谢。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2008-11-19 21:51:18

我认为这个问题缺少两个属性。

首先在GetTopUsers()方法上添加此属性

代码语言:javascript
复制
[System.ComponentModel.DataObjectMethodAttribute
    (System.ComponentModel.DataObjectMethodType.Select, true)]

然后在实际的OurNewObject类上添加这个属性

代码语言:javascript
复制
[System.ComponentModel.DataObject]
票数 0
EN

Stack Overflow用户

发布于 2008-12-03 02:15:02

通常,您将创建一个包含数据访问方法的单独对象,而不是将方法放在代码后面。单独的对象可以是实例,也可以是静态的,但是对象本身必须有一个无参数的构造函数(或者根本没有构造函数)。

另外,TypeName属性在ObjectDataSource上应该引用上面提到的单独对象的typename .示例:

代码语言:javascript
复制
public class SampleDataObject
{
  public ICollection<OurNewObject> GetTopUsers()
  {
    //[...]
  }
}

上面提到的属性:类级别上的System.ComponentModel.DataObject(真)和getter方法中的System.ComponentModel.DataObject不是必需的,但是在寻找要将ObjectDataSource连接到的类时,过滤掉其他类型将有助于设计时的支持。

票数 2
EN

Stack Overflow用户

发布于 2008-12-01 06:09:26

尝试将DataKeyNames (添加主键)属性添加到GridView中,看看这是否有效?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/303460

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档