0

私はこれでグリッドビューを持っています:

 <asp:GridView ID="GridViewCosts" runat="server"   CellPadding="4" ForeColor="#333333" GridLines="None" ShowFooter="True" ShowHeaderWhenEmpty="True" AutoGenerateColumns="False" OnRowDeleting="GridViewCosts_RowDeleting" Width="387px" OnSelectedIndexChanged="GridViewCosts_SelectedIndexChanged" AllowPaging="true" AllowSorting="true" 
PageSize="5" >

しかし、これは私にエラーを与えます:The data source does not support server-side data paging.

コードビハインドでは、次のようなものがあります:

GridViewCosts.DataSource = rdr;
Line 55:                    GridViewCosts.DataBind();

dataSource を持たない gridView をページングする方法

更新 私はこれを持っています

 <asp:GridView ID="GridViewCosts" runat="server"   CellPadding="4" 
        ForeColor="#333333" GridLines="None" ShowFooter="True" ShowHeaderWhenEmpty="True"
         AutoGenerateColumns="False" OnRowDeleting="GridViewCosts_RowDeleting" Width="387px"
         OnSelectedIndexChanged="GridViewCosts_SelectedIndexChanged" 
         OnPageIndexChanging="GridViewCosts_PageIndexChanging"

        PageSize="5" >

コードビハインドでこれを持っています:

  public void getViewProfit()
        {
            string connectionString = cs.getConnection();
            string query = "select Id ,name,value,Description,DateCreate from AllCostView where IdUser = '" + cui.getCurrentId() + "'";
            using (SqlConnection myConnection = new SqlConnection(connectionString))
            {
                myConnection.Open();
                SqlCommand command = new SqlCommand(query, myConnection);
                using (SqlDataReader rdr = command.ExecuteReader())
                {
                   GridViewCosts.DataSource = rdr;
                   GridViewCosts.DataBind();
                }

            }
        }

  protected void GridViewCosts_PageIndexChanging(object sender, GridViewPageEventArgs e)
        {
            GridViewCosts.PageIndex = e.NewPageIndex;
            getViewProfit();
        }

もうエラーはありませんが、まだページングは​​表示されません

4

1 に答える 1

1

datareader を使用した場合は?はい、Datareader であるため、代わりに DataSet/DataTable を使用してください。Datareader はページングおよび並べ替え機能をサポートしていないため、DataReader はデータベースからデータの ReadOnly 、 ForwardOnly ストリームを取得します。

そして、グリッドビューの pageindexChanging プロパティを見逃しました。

以下を参照してください

<asp:GridView ID="GridViewCosts" runat="server"   CellPadding="4" ForeColor="#333333" GridLines="None" ShowFooter="True" ShowHeaderWhenEmpty="True" AutoGenerateColumns="False" OnRowDeleting="GridViewCosts_RowDeleting" Width="387px" OnSelectedIndexChanged="GridViewCosts_SelectedIndexChanged" AllowPaging="true" AllowSorting="true" 
PageSize="5" **OnPageIndexChanging="GridViewCosts_PageIndexChanging"**>

コードビハインド:

protected void GridViewCosts1_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
    GridViewCosts.PageIndex = e.NewPageIndex;

    //rebind your gridview .    

}
于 2013-04-09T19:45:12.873 に答える