【问题标题】:Gridview row delete/remove when paging is enabled启用分页时删除/删除Gridview行
【发布时间】:2015-03-04 06:20:06
【问题描述】:

我有一个启用了分页的 gridview。

当我尝试删除第 1 页以外的页面上的一行时,它删除的是不正确的行,而不是按下删除按钮的行。

protected void GVRequest_RowDeleting(object sender, GridViewDeleteEventArgs e)
    {
        int index = Convert.ToInt32(e.RowIndex);
        DataTable dtCurrentTable = ViewState["CurrentTable"] as DataTable;
        dtCurrentTable.Rows[index].Delete();

        ViewState["CurrentTable"] = dtCurrentTable;

        DataView view = new DataView(dtCurrentTable);
        DataTable dt1 = view.ToTable(true, "CartonID", "FileID", "FileMasterID", "DeptFileID", "RequestID");

        GVRequest.DataSource = dt1;

        DataBind();

    }

【问题讨论】:

    标签: c# gridview paging aspxgridview


    【解决方案1】:

    试试这个

    更换你的

    dtCurrentTable.Rows[index].Delete();
    

    dtCurrentTable.Rows[index-1].Delete();
    

    【讨论】:

      【解决方案2】:

      试试这个...

      protected void GVRequest_RowDeleting(object sender, GridViewDeleteEventArgs e)
      {
              int p = Convert.ToInt32(ViewState["Pageindex"]);
              int s = GVRequest.PageSize;
              p = p * s;
              DataTable dtCurrentTable= new DataTable();
              int d = Convert.ToInt32(e.RowIndex);
              int dl = d + p;
              dt = ViewState["CurrentTable"] as DataTable;
          dtCurrentTable.Rows[dl].Delete();
      
          ViewState["CurrentTable"] = dtCurrentTable;
      
          DataView view = new DataView(dtCurrentTable);
          DataTable dt1 = view.ToTable(true, "CartonID", "FileID", "FileMasterID", "DeptFileID", "RequestID");
      
          GVRequest.DataSource = dt1;
      
          DataBind();
              ViewState["Pageindex"] = 0;
      }
      
      protected void NextPage(object sender, GridViewPageEventArgs e)
      {
          GVRequest.PageIndex = e.NewPageIndex;
          ViewState["Pageindex"] = e.NewPageIndex;
          GVRequest.DataSource = ViewState["CurrentTable"] as DataTable; //get datasource (list or datatable)
          DataBind();
      }
      

      如果你使用上面的代码,你不想假设任何事情

      【讨论】:

        猜你喜欢
        • 2015-05-06
        • 1970-01-01
        • 2013-03-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-01-30
        相关资源
        最近更新 更多