Reputation: 259
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
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