GridView PageIndexChanging强制我再次“搜索”以移动到下一页。

时间:2014-11-13 16:39:54

标签: .net gridview

我有一个从存储过程返回的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();
    }

1 个答案:

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