【问题标题】:How can I change gridview templatecolumn order dynamically?如何动态更改 gridview 模板列顺序?
【发布时间】:2015-08-20 08:24:13
【问题描述】:

如何动态更改 gridview 模板列的顺序?

【问题讨论】:

    标签: gridview templates dynamic


    【解决方案1】:
    1. 迭代遍历 GridView 对象的所有列,并将它们存储在一个集合中强>。

      List<DataControlField> columns = new List<DataControlField>();
      foreach (DataControlField column in gv.Columns)
      {
          columns.Add(column);
      }
      
    2. 重新排列集合中的列对象。

      //Rearrange columns' collection..
      
    3. 清除 GridView 对象的所有列并将集合中的列添加到 GridView 对象。

       gv.Columns.Clear();
       foreach (DataControlField column in columns)
       {
           gv.Columns.Add(column);
       }
      
    【解决方案2】:

    这似乎不适用于模板字段。 删除并重新添加列后,模板字段为空 (绑定的字段显示正确的值)。

    【讨论】:

      【解决方案3】:

      在RowCreated 事件上,遍历每一列,将每一行的第一个单元格(模板字段)保存在一个变量(oCell)上并将其从集合中删除,然后使用column.Add(oCell) 添加它到集合结束。

      protected void GridView1_RowCreated(object sender, GridViewRowEventArgs e){
      
          GridViewRow row = e.Row;
          // Intitialize TableCell list
          List<TableCell> columns = new List<TableCell>();
          foreach (DataControlField column in GridView1.Columns)
          {
              //Get the first Cell /Column
              TableCell cell = row.Cells[0];
              // Then Remove it after
              row.Cells.Remove(cell);
              //And Add it to the List Collections
              columns.Add(cell);
          }
      
          // Add cells
          row.Cells.AddRange(columns.ToArray());
      }
      

      http://geekswithblogs.net/dotNETvinz/archive/2009/06/03/move--autogenerate-columns-at-leftmost-part-of-the-gridview.aspx

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2010-10-30
        • 1970-01-01
        • 1970-01-01
        • 2016-08-07
        • 1970-01-01
        • 2015-02-22
        • 2015-10-03
        • 1970-01-01
        相关资源
        最近更新 更多