Reputation: 847
I have two dynamic gridviews one at leftside and another one at rightside and am binding both these grids on a submit button click.
My problem is PageIndexChanging is working for the grid which i click first and the second one is not working i.e)if i click the leftside grid first, PageIndexChanging is working for that grid alone and not for the rightside grid and viceversa.Here is my code
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);
}
Any suggestion?
Upvotes: 1
Views: 1489
Reputation: 634
Do you want one pageindex event for binding your grids? I mean one pager click for two grid. If so you must bind your two grid with new pageIndex.
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);
}
Upvotes: 3