【发布时间】:2015-10-02 23:00:48
【问题描述】:
我有一个包含几列的数据网格-
网格的标题是超链接,我在运行时设置它的值如下-
string strQ1 = "<a href='somePage.aspx?ID=1'>gfgytyty<a>";
dtGrid.Columns[0].Header = strq1;
string strQ2 = "<a href='somePage.aspx?ID=2'>yhtryrtuyu<a>";
dtGrid.Columns[1].Header = strq2;
and so on...
它工作正常。 现在假设我想通过名称获取 datatgrid 特定列的索引,但我无法获取它。 我试过了
int colIndex = dtGrid.Columns.IndexOf(dtGrid.Columns[strQ2]);
这应该返回 1 作为 columnIndex 但它返回 -1,
另外,dtGrid.Columns[strQ2] 给了我空值。
我在这里做错了什么?
【问题讨论】:
-
wpf datagrid 还是 winforms datagridview?
-
这是 - dtGrid.Columns[strQ2] 导致有效的 DataGridColumn 对象,请验证,这可能是一个问题。在您的情况下,我可以看到您将 strq2 分配为标头,但在 IndexOf 调用中使用 strQ2
-
@MrinalKamboj 是的,你是对的! dtGrid.Columns[strQ2] 给出空值。你能告诉解决方法吗?
-
你确定是winforms datagrid?那没有
Columns属性。但是DataGridViewColumn没有Header而是HeaderText属性。也许您的意思是 wpfDataGrid哪些列具有Header属性。请不要混在一起。 -
在您的原始解决方案中,您能否尝试将 dtGrid.Columns[strQ2] 类型转换为 DataGridColumn 并检查,因为您使用的将给出一个对象类型,该类型在 Equals 方法中进行引用比较跨度>
标签: c# winforms datagrid indexof