Krasimir
Krasimir

Reputation: 259

How to paging gridView

I have grid view with this :

 <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" >

but this give in me error: The data source does not support server-side data paging.

in code behind i have something like this :

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

how to paging my gridView which isn't have dataSource

UPDATE I modify I have this

 <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" >

in code Behind have this :

  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();
        }

there no error any more , but still not show paging

Upvotes: 0

Views: 461

Answers (1)

user1193035
user1193035

Reputation:

If you used datareader?yes,Please use DataSet/DataTable instead since a Datareader. Because Datareader doesn't support paging and sorting capability, the DataReader retrieves a ReadOnly , ForwardOnly stream of data from database..

And you missed the gridview's pageindexChanging property,

for see below

<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"**>

Code behind:

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

    //rebind your gridview .    

}

Upvotes: 1

Related Questions