【问题标题】:How to get column name and create string variable dynamically?如何获取列名并动态创建字符串变量?
【发布时间】:2016-10-08 20:31:02
【问题描述】:

通过编辑链接按钮,我可以使用下面的代码编辑记录。如您所见,列数为 4 ,对于固定列号,此代码很好,但在我的情况下,列号不固定,下一次插入时它们可能是 4 或可能是 5。如何获取列名并创建该数量的字符串变量,以便将字符串值分配给特定字段?

  protected void OnUpdate(object sender, EventArgs e)
{
    GridViewRow row = (sender as LinkButton).NamingContainer as GridViewRow;

    string a = (row.Cells[3].Controls[0] as TextBox).Text;
    string b = (row.Cells[4].Controls[0] as TextBox).Text;
    string c = (row.Cells[5].Controls[0] as TextBox).Text;
    string d = (row.Cells[6].Controls[0] as TextBox).Text;

    DataTable dt = ViewState["dt"] as DataTable;

    dt.Rows[row.RowIndex]["Column0"] = a;
    dt.Rows[row.RowIndex]["Column1"] = b;
    dt.Rows[row.RowIndex]["Column2"] = c;
    dt.Rows[row.RowIndex]["Column3"] = d;

    ViewState["dt"] = dt;
    GridView1.EditIndex = -1;
    this.BindGrid();
    btnGetSelected.Visible = true;

}

【问题讨论】:

    标签: c# gridview


    【解决方案1】:

    你的意思是你需要GridView的列名吗?

    你可以使用其中任何一个

    gv.HeaderRow.Cells[i].Text
    
    gv.Rows[0].Cells[i].Text
    

    Reference

    您希望使用DataTable 的列名

    string[] columnNames = dt.Columns.Cast<DataColumn>()
                                     .Select(x => x.ColumnName)
                                     .ToArray();  
    

    【讨论】:

      【解决方案2】:

      这对我有用。

       protected void OnUpdate(object sender, EventArgs e)
      {
          GridViewRow row = (sender as LinkButton).NamingContainer as GridViewRow;
          DataTable dt = ViewState["dt"] as DataTable;
          int j=0;
          for (int i = 3; i < row.Cells.Count; i++)
          {
                string a = (row.Cells[i].Controls[0] as TextBox).Text;
                dt.Rows[row.RowIndex][j] = a;
                j++;
          }
          ViewState["dt"] = dt;
          GridView1.EditIndex = -1;
          this.BindGrid();
          btnGetSelected.Visible = true;
      }
      

      【讨论】:

      • 如果发布的答案帮助您找到此解决方案,您应该将其标记为正确答案,并将工作解决方案作为编辑发布在您的帖子中,而不是作为答案。只是一个建议。欢迎使用 StackOverflow。
      猜你喜欢
      • 2022-06-25
      • 1970-01-01
      • 1970-01-01
      • 2019-07-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-01-15
      相关资源
      最近更新 更多