gpt4 book ai didi

c# - GridView 不在 GridView_PageIndexChanging 上显示

转载 作者:太空狗 更新时间:2023-10-29 23:37:15 26 4
gpt4 key购买 nike

我有一个 ViewStock 面板,我在其中查看来自数据库的 gridview 中的股票,并通过代码对其进行 DataBind()。在 html 的 gridview 标签中允许分页和创建事件“OnPageIndexChanging”,实现上面定义的代码并在事件中分页如下:

HTML:

<asp:Panel ID="Panel_StockView" runat="server">

<asp:GridView ID="GridView_Stock" AllowPaging="true" OnPageIndexChanging="GridView_PageIndexChanging" runat="server"></asp:GridView>

</asp:Panel>

C# 代码:

protected void LinkButton_Panel_ViewStock_Click(object sender, EventArgs e)
{
using(SqlConnection con = new SqlConnection(cs))
{
//Sql command here
/sql adapter and filled datatable
sdaStockView.Fill(dtStockView);
GridView_Stock.DataSource = dtStockView;
GridView_Stock.DataBind();
}
}

现在实现分页

protected void GridView_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
GridView_Stock.DataBind();
GridView_Stock.PageIndex = e.NewPageIndex;
}

它确实有效,但部分有效。它进行分页并正确处理数据。但是,问题是当我单击页面“2”时,面板空白,就像我上传的图片一样 See this Image ,然后我单击链接按钮再次将我重定向到面板,并打开包含有效数据的 gridview 页面“2”。

如何解决这个问题?

最佳答案

  1. 将 GridView 绑定(bind)到数据的逻辑提取到一个新方法中。您可以调用它 BindData() 例如:

    private void BindData()
    {
    using (SqlConnection con = new SqlConnection(cs))
    {
    sdastockview.fill(dtstockview);
    gridview_stock.datasource = dtstockview;
    gridview_stock.databind();
    }
    }
  2. LinkBut​​ton_Panel_ViewStock_Click 中调用此方法来填充 GridView:

    protected void LinkButton_Panel_ViewStock_Click(object sender, EventArgs e)
    {
    this.BindData();
    }
  3. 最后,在分页期间再次调用它以重新填充 GridView:

    protected void GridView_PageIndexChanging(object sender, GridViewPageEventArgs e)
    {
    GridView_Stock.PageIndex = e.NewPageIndex;
    this.BindData();
    }

只需进行这三个小更改,它就会起作用。我已经在我这边试过了,它工作得很好。

关于c# - GridView 不在 GridView_PageIndexChanging 上显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37640422/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com