我有一个面板ViewStock,在该面板中,我从数据库查看网格视图中的股票,并通过代码查看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‘时,面板就像我上传的见此图像图片中一样,然后单击链接按钮,再次将我重定向到面板,并使用有效的数据打开网格视图的页面“2”。
如何解决这一问题?
发布于 2016-06-06 05:05:47
BindData(),例如:
私有BindData() {使用(SqlConnection con =新SqlConnection(cs)) { sdastockview.fill(dtstockview);gridview_stock.datasource = dtstockview;gridview_stock.databind();}LinkButton_Panel_ViewStock_Click中调用此方法来填充GridView:
受保护的void LinkButton_Panel_ViewStock_Click(对象发送方,EventArgs e) { this.BindData();}GridView:
受保护的GridView_PageIndexChanging(对象发送方,GridViewPageEventArgs e) { GridView_Stock.PageIndex = e.NewPageIndex;this.BindData();}只要做这三个小小的改变,它就会成功的。我已经在我这边试过了,效果很好。
发布于 2016-06-05 12:28:01
在像这样填充DataSet之后,将您的ViewState保存在LinkButton_Panel_ViewStock_Click上的某个位置
ViewState["ds"] = dtStockView
在PageIndexChanging中这样写
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();
}希望这能帮到你
发布于 2016-06-06 05:46:57
您可以尝试使用:
protected void GridView_RowCommand(object sender, GridViewCommandEventArgs e)https://stackoverflow.com/questions/37640422
复制相似问题