【问题标题】:ObjectDataSource SelectMethod对象数据源选择方法
【发布时间】:2013-05-08 09:21:42
【问题描述】:

我正在尝试使用 ObjectDataSource 的 SelectMethod 调用函数。

<asp:ObjectDataSource runat="server" 
                      ID="odsDocuments" 
                      TypeName="ClassA" 
                      SelectMethod="Documents.GetDocuments" />

其中“Documents”是另一个类的实例,作为“ClassA”中的公共属性,“GetDocuments”是“Documents”类中的函数。

我不断收到一条错误消息,提示找不到该函数(显然该函数存在并且访问级别没有问题)。

知道我哪里出错了,或者使用这种方法真的不可能使用这种语法吗?

【问题讨论】:

  • Documents 是什么?类中的类 (ClassA) ??
  • 是的,“Documents”是“ClassA”中的一个类的实例对不起,我忘了提

标签: asp.net objectdatasource selectmethod


【解决方案1】:

我认为 ObjectDataSource 不支持点表示法;我认为 ODS 必须直接在类型中指定的对象上使用该方法。但是,我知道您可以在幕后更改数据源用来调用方法的底层对象。所以我的意思是在其中一个事件(我相信ObjectCreated 事件)中,您可以更改上下文以指向 Document 对象,以便正确评估所有内容。

【讨论】:

  • 这不是我使用的解决方案(最终只是将数据对象设置为 Documents 类),因为不支持 DOT 表示法,如您所说),但我将其标记为强调这一点的答案。感谢您的帮助
【解决方案2】:

您可以在ClassA 中实现一个包装器方法,如下所示:

public object GetDocuments()
{
    return Documents.GetDocuments();
}

并以这种方式使用数据源:

<asp:ObjectDataSource runat="server" 
                      ID="odsDocuments" 
                      TypeName="ClassA" 
                      SelectMethod="GetDocuments" />

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多