Question

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?

Était-ce utile?

La solution

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);
       }
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top