ASP Gridview:从标题列文本中收集单元格值?

时间:2014-02-03 11:00:33

标签: c# asp.net gridview

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

到目前为止,我还没有找到我想要的东西。

我正在寻找的更像是: row.Cells [ “Name_of_Column”]文本;

有一种迭代每一列的方法,然后如果标签匹配,请抓住文本,参见: How to get column name from gridview?

但是,我正在做的是以编程方式使用用户选择的列进行gridview,所以我不确定row.Cells [2] .Text是否是正确的值,或者它是否为row.Cells [3 ] .Text或row.Cells [13]。文本等

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

在此先感谢我会尝试提出好的答案。

2 个答案:

答案 0 :(得分: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),然后您可以在需要的地方重复使用它。

答案 1 :(得分:0)

试试这个,

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