0

Listview 内に DataPager コントロールを追加しました。データ表示中は問題ありません。しかし、[次のページ] ボタンをクリックすると、エラーが発生します。

エラー: SelectMethod が指定されていない限り、Select 操作は 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>
4

1 に答える 1

0

Ok。FillGrid() はうまく機能し、Page_Load ルーチンでそのデータをロードできます。ListView の「次のページ」をクリックすると、PostBack が実行されます。

if(!IsPostBack)      
  FillGrid();
}

..これは、FillGrid() がロードされていないことを意味します (これは、ObjectDataSource が Select 命令を持っている場所です)。これは、上記のコード スニペットで確認できる範囲外です。IsPostBack の処理でこのような間違いを犯すことは非常に一般的です。

于 2011-09-18T10:17:03.257 に答える