1

左側に 1 つ、右側にもう 1 つの 2 つの動的グリッドビューがあり、送信ボタンのクリックでこれらの両方のグリッドをバインドしています。

私の問題は、PageIndexChanging が最初にクリックしたグリッドで機能し、2 番目のグリッドが機能しないことです。つまり、最初に左側のグリッドをクリックすると、PageIndexChanging はそのグリッドだけで機能し、右側のグリッドでは機能しません。

  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);
       }

なにか提案を?

4

1 に答える 1

3

グリッドをバインドするために 1 つの pageindex イベントが必要ですか? つまり、2 つのグリッドに対して 1 つのページャー クリックです。その場合、2 つのグリッドを新しい 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);
       }
于 2012-07-12T10:56:46.083 に答える