获取具有给定列标题c#的列的索引
本文关键字:标题 索引 获取 | 更新日期: 2023-09-27 18:29:56
伙计们,我正在尝试获取具有特定列标题的列的索引。到目前为止,我已经到达
int index_of = grid_statement.Columns[the_name].Index;
但它抛出了一个NullReference异常。
有其他方法可以得到那个索引吗?(名称是一个具有列标题的变量)
如果您试图按列的名称获取列,那么您的网格为null,或者您的网格中没有名称等于the_name
的列。在这两种情况下,您都无法获得不存在列的索引。为了避免在没有提供名称的列的情况下出现异常,可以在尝试获取其索引之前检查列是否存在。
var column = grid_statement.Columns[the_name];
int index_of = column == null ? -1 : column.Index;
若您试图通过列的标题文本(和列名不同)来获取列,则应该搜索具有相同标题的列。若找到了列,则获取它的索引:
var column = grid_statement.Columns
.Cast<DataGridViewColumn>()
.FirstOrDefault(c => c.HeaderText == the_name);
int index_of = column == null ? -1 : column.Index;
试试这个,它会帮助你
int index_of = grid_statement.CurrentRow.Cells["ColumnName"].ColumnIndex;
您可能试图在绑定数据源之前访问列集合。此时gridview
没有任何列。分配dataSource并绑定网格,然后检查列的索引。
grid_statement.DataSource = dataTable;
grid_statement.DataBind();
int index_of = grid_statement.Columns[the_name].Index;
为了避免出现异常,您应该首先检查是否有列,然后获取其索引。
int index_of = -1;
if(grid_statement.Columns[the_name] != null)
index_of = grid_statement.Columns[the_name].Index;