C# 具有ObjectDataSource问题的Listview DataPager

C# 具有ObjectDataSource问题的Listview DataPager,c#,.net,asp.net,listview,datapager,C#,.net,Asp.net,Listview,Datapager,我在Listview中添加了DataPager控件。显示数据时没有问题。但是当我点击下一页按钮时,我得到了错误 错误:除非指定了SelectMethod,否则ObjectDataSource“ObjectDataSource2”不支持选择操作 protected void Page_Load(object sender, EventArgs e) { if(!IsPostBack) FillGrid(); }

我在Listview中添加了DataPager控件。显示数据时没有问题。但是当我点击下一页按钮时,我得到了错误

错误:除非指定了SelectMethod,否则ObjectDataSource“ObjectDataSource2”不支持选择操作

protected void Page_Load(object sender, EventArgs e)
        {

        if(!IsPostBack)      
        FillGrid();
        }

        private void FillGrid()
        {           
            User user = new User();
            user = (User)HttpContext.Current.Session["login"];
            ObjectDataSource2.SelectMethod = "GetDetails";
            ObjectDataSource2.SelectParameters.Add("Customer_ID", DbType.Int32, Convert.ToString(user.Customer_ID));
            ObjectDataSource2.SelectParameters.Add("Selected_Period", DbType.String, Convert.ToString(Request.QueryString["period"]));
            ObjectDataSource2.TypeName = "Online.Lib.Invoice";

        }
代码旁边:

<asp:ListView ID="ListView1" runat="server" DataSourceID="ObjectDataSource2">
       <LayoutTemplate>            
                <asp:DataPager ID="DataPager1" PagedControlID="ListView1"   runat="server">
                <Fields> 
               <asp:NumericPagerField ButtonCount="10" />       
               <asp:NextPreviousPagerField FirstPageText="İlk" LastPageText="Son" NextPageText="İleri" PreviousPageText="Geri" />
              </Fields>
                </asp:DataPager>                                                  
            </LayoutTemplate>  
   </asp:ListView>

好的。FillGrid()工作正常,您可以通过Page_load例程加载它的数据。当您单击ListView的“下一页”时,您正在进行回发

if(!IsPostBack)      
  FillGrid();
}

..这意味着未加载FillGrid()(这是ObjectDataSource的Select指令所在的位置)。这是我在上面的代码片段中看到的。在iPostback处理中犯这样的错误是很常见的。

似乎很清楚:您应该在ObjectDataSource2上设置SelectMethod属性,以便它可以加载任何内容。如果这不起作用,请同时发布ObjectDataSource的ASP.NET标记…@Koen已经在FillGrid方法中定义了SelectMethod属性。不知道这是否会起作用。最好在声明中定义它。如果页面作用域中应该使用不同的select方法,那么也应该使用不同的ObjectDataSource。最好通过声明设置尽可能多的参数。。。