我正在尝试编写一个小方法来循环并GridView通过其索引查找列,因为它可以根据可见的内容更改位置.
这是我到目前为止:
private int GetColumnIndexByName(GridView grid, string name)
{
foreach (DataColumn col in grid.Columns)
{
if (col.ColumnName.ToLower().Trim() == name.ToLower().Trim()) return col.Ordinal;
}
return -1;
}
Run Code Online (Sandbox Code Playgroud)
在这种情况下,DataColumn似乎不是正确使用的类型,但我有点迷失在这里我应该做什么.
我只能使用.NET 2.0/3.5.我不能用4.0.
Del*_*rin 35
我想通了,我需要使用DataControlField和稍微不同的语法.
工作版本:
private int GetColumnIndexByName(GridView grid, string name)
{
foreach (DataControlField col in grid.Columns)
{
if (col.HeaderText.ToLower().Trim() == name.ToLower().Trim())
{
return grid.Columns.IndexOf(col);
}
}
return -1;
}
Run Code Online (Sandbox Code Playgroud)
Dav*_*pko 17
我更喜欢收集迭代,但为什么要花费在这种情况下的开销foreach和grid.Columns.IndexOf调用?只需使用索引遍历数组.
private int GetColumnIndexByName(GridView grid, string name)
{
for(int i = 0; i < grid.Columns.Count; i++)
{
if (grid.Columns[i].HeaderText.ToLower().Trim() == name.ToLower().Trim())
{
return i;
}
}
return -1;
}
Run Code Online (Sandbox Code Playgroud)