我有一个带有gridview和objectdatasource的asp.net页面。 objectdatasource应该调用的Select方法位于同一页面后面的代码中。当我尝试在后面的代码中引用一个方法时,我不断收到以下错误:
“无法找到ObjectDataSource'typesReplacementRequests'的TypeName属性中指定的类型。”
我尝试过使用typename的不同组合。实例
Typename =“” Typename =测试
Page称为Testing.aspx
<asp:ObjectDataSource ID="odsReplacementRequests" runat="server" EnablePaging="true"
SelectMethod="GetReplacementRequests" TypeName="ASP.retail_gpreplacements_aspx">
</asp:ObjectDataSource>
/// <summary>
/// Get replacements
/// </summary>
public List<ReplacementRequests> GetReplacementRequests()
{
List<ReplacementRequests> r = new List<ReplacementRequests>();
ReplacementRequests rp1 = new ReplacementRequests() { CustomerNumber = "12300", PhoneNumber = "778-123-2132" };
ReplacementRequests rp2 = new ReplacementRequests() { CustomerNumber = "12301", PhoneNumber = "778-123-2132" };
r.Add(rp1);
r.Add(rp2);
return r;
}
**更新
我使用以下代码获取代码隐藏类的类型名称
/// <summary>
/// Page Load
/// </summary>
protected void Page_Load(object sender, EventArgs e)
{
odsReplacementRequests.TypeName = this.GetType().ToString();
}
仍然没有运气......
答案 0 :(得分:1)
由于您忽略了TypeName
上的ObjectDataSource
属性,因此默认为空字符串。您需要将类型名称作为定义SelectMethod
的类的完全限定名称(即Testing.aspx
文件中的名称空间加上类名称),如下所示:
<asp:ObjectDataSource ID="odsReplacementRequests" runat="server"
EnablePaging="true"
TypeName="YourNamespace.SubNamespace.Testing"
SelectMethod="GetReplacementRequests">
注意:您可能有也可能没有子命名空间,但只需从代码隐藏中复制
namespace
,并在该字符串的末尾添加一个点和类名。
此外,GetGPReplacementRequests
!= GetReplacementRequests
。
SelectMethod
中的ObjectDataSource
属性指向GetGPReplacementRequests
,但您的代码隐藏有一个名为GetReplacementRequests
的方法,将SelectMethod
更改为<asp:ObjectDataSource ID="odsReplacementRequests" runat="server"
EnablePaging="true"
SelectMethod="GetReplacementRequests">
名字,像这样:
{{1}}
答案 1 :(得分:1)
添加SelectMethod所在的类型名称并修复SelectMethod的名称
<asp:ObjectDataSource ID="odsReplacementRequests" runat="server" EnablePaging="true"
TypeName="NameSpace.Testing"
SelectMethod="GetReplacementRequests">
</asp:ObjectDataSource>
有关其他信息,请查看SelectMethod上的MSDN