如何通过列名称获取列索引? [英] how to get column Index by column name?

查看:172
本文介绍了如何通过列名称获取列索引?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述



网格的标题是超链接,我正在运行时将其值设置如下 -

  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;

等等...

它正常工作。
现在假设我想通过名称获取datatgrid的perticular列的索引,但是我无法得到它。
我试过

  int colIndex = dtGrid.Columns.IndexOf(dtGrid.Columns [strQ2]); 

这应该返回1作为columnIndex,但它返回-1,



此外,dtGrid.Columns [strQ2]给出了空值。



我在这里做错什么?

解决方案

尝试使用LINQ FirstOrDefault先获取对象,然后使用.IndexOf(object):

  dtGrid.Columns.IndexOf(dtGrid.Columns.FirstOrDefault(c => c.Header == strQ2)); 


I have a datagrid having few columns-

The header of the grid is hyperlink and I am setting its value at runtime as follows-

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...

It is working properly. Now suppose I want to get index of a perticular column of datatgrid by its name but I am not able to get it. I tried

int  colIndex = dtGrid.Columns.IndexOf(dtGrid.Columns[strQ2]);

this should return 1 as columnIndex but it is returning -1,

Also, dtGrid.Columns[strQ2] giving me the null value.

what I am doing wrong here?

解决方案

Try to use LINQ FirstOrDefault to get object first and only then use .IndexOf(object) :

dtGrid.Columns.IndexOf(dtGrid.Columns.FirstOrDefault(c => c.Header == strQ2));

这篇关于如何通过列名称获取列索引?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆