我有一个从存储过程返回的DataTable并在GridView中显示数据当返回数据时,我看到数据的页数,但是当我选择一个页面时,它会重新加载并且不显示任何数据。然后,如果我再次选择“搜索”按钮,我将获得正确页面的数据。我在这里错过了一步吗?我的代码如下。谢谢。
protected void btnSubmit_Click(object sender, EventArgs e)
{
DataTable dt = DataLayer.PricingToolDL.PriceSearch(brandCode, brandName, item, ownerCode, ownerName, color, billTo, shipTo, customerName, status);
GridView1.DataSource = dt;
GridView1.DataBind();
}
我的GridView代码如下所示。
<asp:GridView ID="GridView1" runat="server" AllowSorting="true" AutoGenerateColumns="false" AllowPaging="True" onpageindexchanging="GridView1_PageIndexChanging">
我的GridView1_PageIndexChanging方法如下所示。
protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
GridView1.PageIndex = e.NewPageIndex;
GridView1.DataBind();
}
答案 0 :(得分:1)
您需要重新绑定DataSource。我会创建一个这样的新方法:
private void BindGrid()
{
GridView1.DataSource = {{your data source}}
GridView1.DataBind();
}
然后,从您的分页事件处理程序中调用此方法,如下所示:
protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
GridView1.PageIndex = e.NewPageIndex;
BindGrid();
}