首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >GridView不显示在GridView_PageIndexChanging上

GridView不显示在GridView_PageIndexChanging上
EN

Stack Overflow用户
提问于 2016-06-05 09:35:37
回答 3查看 109关注 0票数 5

我有一个面板ViewStock,在该面板中,我从数据库查看网格视图中的股票,并通过代码查看DataBind()。允许在html中的gridview标记中分页和创建事件"OnPageIndexChanging“,实现上述定义的代码并在事件中分页,如下所示:

HTML:

代码语言:javascript
复制
<asp:Panel ID="Panel_StockView" runat="server">

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

</asp:Panel>

代码C#:

代码语言:javascript
复制
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();
    }
}

而现在已实现的寻呼

代码语言:javascript
复制
protected void GridView_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
    GridView_Stock.DataBind();
    GridView_Stock.PageIndex = e.NewPageIndex;
}

它确实起作用,但也有部分作用。它执行分页并正确地执行数据。但是,问题是,当我单击页面'2‘时,面板就像我上传的见此图像图片中一样,然后单击链接按钮,再次将我重定向到面板,并使用有效的数据打开网格视图的页面“2”。

如何解决这一问题?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-06-06 05:05:47

  1. 提取将GridView与数据绑定到新method.You中的逻辑可以称为BindData(),例如: 私有BindData() {使用(SqlConnection con =新SqlConnection(cs)) { sdastockview.fill(dtstockview);gridview_stock.datasource = dtstockview;gridview_stock.databind();}
  2. LinkButton_Panel_ViewStock_Click中调用此方法来填充GridView: 受保护的void LinkButton_Panel_ViewStock_Click(对象发送方,EventArgs e) { this.BindData();}
  3. 最后,再次调用它在分页期间重新填充GridView: 受保护的GridView_PageIndexChanging(对象发送方,GridViewPageEventArgs e) { GridView_Stock.PageIndex = e.NewPageIndex;this.BindData();}

只要做这三个小小的改变,它就会成功的。我已经在我这边试过了,效果很好。

票数 2
EN

Stack Overflow用户

发布于 2016-06-05 12:28:01

在像这样填充DataSet之后,将您的ViewState保存在LinkButton_Panel_ViewStock_Click上的某个位置

ViewState["ds"] = dtStockView

PageIndexChanging中这样写

代码语言:javascript
复制
protected void GridView_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
    panel_ViewStock.visible = true;
    GridView_Stock.PageIndex = e.NewPageIndex;
    GridView_Stock.DataSource = ViewState["ds"] as DataSet
    GridView_Stock.DataBind();
}

希望这能帮到你

票数 0
EN

Stack Overflow用户

发布于 2016-06-06 05:46:57

您可以尝试使用:

代码语言:javascript
复制
protected void GridView_RowCommand(object sender, GridViewCommandEventArgs e)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37640422

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档