【问题标题】:ASP Gridview: Collect cell value from header column text?ASP Gridview:从标题列文本中收集单元格值?
【发布时间】:2014-02-03 11:00:33
【问题描述】:

我正在使用 asp 中的一些网格视图 我想知道的是:是否有一种快速/好的方法可以根据标题列文本获取正确的单元格?

到目前为止,我还没有找到我想要环顾四周的确切内容。

我正在寻找的更像是: row.Cells["Name_of_Column"].Text;

有一种方法可以遍历每一列,然后如果标签匹配,请抓取文本,请参阅: How to get column name from gridview?

但是,我正在做的是使用用户以编程方式选择的列制作一个 gridview,所以我不确定 row.Cells[2].Text 是否是正确的值,或者它是否可以是 row.Cells[3 ].Text 或 row.Cells[13].Text 等

再一次,我可以通过循环来解决这个问题,我正在寻找一个不那么混乱、更优雅的解决方案。

在此先感谢,我会尽力为好的答案投票。

【问题讨论】:

    标签: c# asp.net gridview


    【解决方案1】:

    对于它的价值,您可以使用 LINQ(它也使用循环)来创建一个字典,其中列的名称作为键,它的索引作为值:

    Dictionary<string, int> colLookup = GridView1.Columns.Cast<DataControlField>()
        .Select((Col, Index) => new { Col.HeaderText, Index })
        .ToDictionary(f => f.HeaderText, f => f.Index);
    string cellText = e.Row.Cells[colLookup["Name_of_Column"]].Text;
    

    您可以将其设为初始化一次的实例字段(例如在 Page_Load 中),然后您可以在需要的地方重复使用它。

    【讨论】:

      【解决方案2】:

      试试这个,

      for (int i = 0; i < grdToDisplay.Columns.Count; i++)
      {
        string header = grdToDisplay.Columns[i].HeaderText;
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-07-28
        相关资源
        最近更新 更多