C# 动态GridView页面索引交换未触发?
我有两个动态网格视图,一个在左边,另一个在右边,我正在通过点击提交按钮绑定这两个网格 我的问题是PageIndexChange对我首先单击的网格有效,而第二个网格不起作用,即)如果我首先单击左侧网格,PageIndexChange仅对该网格有效,而不是对右侧网格和反之亦然。下面是我的代码C# 动态GridView页面索引交换未触发?,c#,asp.net,delegates,event-handling,page-index-changed,C#,Asp.net,Delegates,Event Handling,Page Index Changed,我有两个动态网格视图,一个在左边,另一个在右边,我正在通过点击提交按钮绑定这两个网格 我的问题是PageIndexChange对我首先单击的网格有效,而第二个网格不起作用,即)如果我首先单击左侧网格,PageIndexChange仅对该网格有效,而不是对右侧网格和反之亦然。下面是我的代码 protected void lnkBTNSubmit_Click(object sender, EventArgs e) { pnlLeft.Controls.Add(
protected void lnkBTNSubmit_Click(object sender, EventArgs e)
{
pnlLeft.Controls.Add(grdATASalesTrendleft);
dataResult = ObjAnalyzeTrendAnalysis.AnalyzeSalesTrendTables(requestID, "ATAT_1");
dataResult = ObjCommon.GetColumnAliasReportDetails(dataResult, "ATAT_1");
ObjSharedEntities.LeftTableData = dataResult;
BindGridDataLeft(grdATASalesTrendleft, ObjSharedEntities.LeftTableData);
grdATASalesTrendleft.Visible = true;
pnlRight.Controls.Add(grdATASalesTrendright);
dataResult = ObjAnalyzeTrendAnalysis.AnalyzeSalesTrendTables(requestID, "ATAT_5");
dataResult = ObjCommon.GetColumnAliasReportDetails(dataResult, "ATAT_5");
ObjSharedEntities.RightTableData = dataResult;
BindGridDataRight(grdATASalesTrendright, ObjSharedEntities.RightTableData);
grdATASalesTrendright.Visible = true;
}
protected void Page_Load(object sender, EventArgs e)
{
GridLoad();
}
private void GridLoad()
{
Leftgrid();
Rightgrid();
BindGridDataLeft(grdATASalesTrendleft, dataResult);
BindGridDataRight(grdATASalesTrendright, dataResult);
}
private void Leftgrid()
{
grdATASalesTrendleft = new GridView();
grdATASalesTrendleft.ID = "grdATASalesTrendleft";
grdATASalesTrendleft.AutoGenerateColumns = true;
grdATASalesTrendleft.EmptyDataText = "No data available.";
grdATASalesTrendleft.AllowPaging = true;
grdATASalesTrendleft.PagerSettings.Mode = PagerButtons.Numeric;
grdATASalesTrendleft.PagerSettings.Position = PagerPosition.Bottom;
grdATASalesTrendleft.PageSize = 15;
grdATASalesTrendleft.PagerStyle.BackColor = System.Drawing.Color.FromArgb(80, 124, 209);
ObjCommon.ApplyStylesForGridView(grdATASalesTrendleft);
grdATASalesTrendleft.PageIndexChanging += new GridViewPageEventHandler(grdATASalesTrendleft_PageIndexChanging);
}
private void BindGridDataLeft(GridView e, DataTable dataResult)
{
GridView grdATASalesTrend = (GridView)e;
grdATASalesTrend.DataSource = dataResult;
grdATASalesTrend.DataBind();
pnlLeft.Controls.Add(grdATASalesTrend);
}
void grdATASalesTrendleft_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
GridView grdATASalesTrendleft = (GridView)sender;
grdATASalesTrendleft.PageIndex = e.NewPageIndex;
BindGridDataLeft(grdATASalesTrendleft, ObjSharedEntities.LeftTableData);
}
private void Rightgrid()
{
grdATASalesTrendright = new GridView();
grdATASalesTrendright.ID = "grdATASalesTrendright";
grdATASalesTrendright.AutoGenerateColumns = true;
grdATASalesTrendright.EmptyDataText = "No data available.";
grdATASalesTrendright.AllowPaging = true;
grdATASalesTrendright.PagerSettings.Mode = PagerButtons.Numeric;
grdATASalesTrendright.PagerSettings.Position = PagerPosition.Bottom;
grdATASalesTrendright.PageSize = 15;
grdATASalesTrendright.PagerStyle.BackColor = System.Drawing.Color.FromArgb(80, 124, 209);
ObjCommon.ApplyStylesForGridView(grdATASalesTrendright);
grdATASalesTrendright.PageIndexChanging += new GridViewPageEventHandler(grdATASalesTrendright_PageIndexChanging);
}
private void BindGridDataRight(GridView e, DataTable dataResult)
{
GridView grdATASalesTrend = (GridView)e;
grdATASalesTrend.DataSource = dataResult;
grdATASalesTrend.DataBind();
pnlRight.Controls.Add(grdATASalesTrend);
}
void grdATASalesTrendright_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
GridView grdATASalesTrendright = (GridView)sender;
grdATASalesTrendright.PageIndex = e.NewPageIndex;
BindGridDataRight(grdATASalesTrendright, ObjSharedEntities.RightTableData);
}
有什么建议吗?是否需要一个页面索引事件来绑定网格?我是说一个页面点击两个网格。如果是这样,您必须用新的页面索引绑定两个网格
void grdATASalesTrendleft_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
GridView grdATASalesTrendleft = (GridView)sender;
grdATASalesTrendleft.PageIndex = e.NewPageIndex;
BindGridDataLeft(grdATASalesTrendleft, ObjSharedEntities.LeftTableData);
// add
grdATASalesTrendright.PageIndex = e.NewPageIndex;
BindGridDataRight(grdATASalesTrendright, ObjSharedEntities.RightTableData);
}
您是如何注册该活动的?编辑了我的答案,但我建议您使用一个寻呼机作为两个网格,并且寻呼机应与网格分开。您可以从查询字符串获取页面索引。这里的问题是,如果我在页面加载后第一次单击右侧gridview,PageIndexChange工作正常,但左侧gridview PageIndexChange不工作,如果我在页面加载后第一次单击左侧gridview,PageIndexchange工作正常,但右侧gridview PageIndexchange在此之后不工作..能够理解我的观点吗?我已更改了此部分grdATASalesTrendright.PageIndexChanging+=新的GridViewPageEventHandler(grdATASalesTrendleft_PageIndexChanging);并尝试了您的代码..如果我单击左侧gridview,它会工作,右侧gridview也会第一次工作..第二次左侧gridview不工作执行页面。是否加载页面上的PostBack控件?我认为主要问题就在那里。