1

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

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

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

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

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

4

2 回答 2

2

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

于 2013-05-08T11:58:48.450 回答
1

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

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

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

<asp:ObjectDataSource runat="server" 
                      ID="odsDocuments" 
                      TypeName="ClassA" 
                      SelectMethod="GetDocuments" />
于 2015-04-16T08:28:20.220 回答