在objectdatasource中找不到Typename

时间:2013-12-17 20:30:05

标签: asp.net

我有一个带有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();
}

仍然没有运气......

2 个答案:

答案 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