我有一个数据源绑定到SqlDataReader对象的DataGrid:
SqlDataReader areader = runner.Reader;
dgSearchResults.DataSource = areader;
dgSearchResults.DataBind();我已经为我的网格创建了一个ItemDataBound事件,我想要检查一个特定列/单元格的值,当每一项都被绑定时,我可以启用/禁用一些标志。
如何在ItemDataBound上获取特定单元格"SvcID“的值?
下面是我的代码:
public void dgSearchResults_ItemDataBound(object sender, DataGridItemEventArgs e)
{
if (ViewState["SvcIDs"] != null)
{
if (e.Item != null)
{
var svcIds = (List<int>) ViewState["SvcIDs"];
if (svcIds.Contains(Convert.ToInt32(**DataGrid SvcID Goes Here**))
{
//TODO: enable/disable some icons
}
}
}
}我以前使用过RowDataBound事件,但不是用于DataGrid控件,而且所需的步骤看起来有点不同。
根据我的SvcIds (使用索引)列表检查我的DataGrid中"SvcID“列的值的代码是什么?
谢谢
发布于 2013-08-16 01:45:41
您可以使用以下命令访问单元格:
e.Item.Cells[index].Text;http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.datagriditemeventargs.item.aspx
发布于 2013-08-16 01:47:07
如果您的文本在第二个单元格中。
例如e.Item.Cells2.Text
发布于 2013-08-16 01:40:58
不幸的是,您不能使用列名或数据绑定字段名来索引Cell集合。
为此,您需要知道数据字段的索引(例如,在本例中为SvcID ),并对Row对象进行索引。如果您使用的是AutogenerateColumns,那么索引将基于您从数据库查询的列的顺序。
然后可以处理RowDataBound事件,该事件有一个GridViewRowEventArgs类型的事件参数,允许您访问DataGridView行实例。然后你可以这样做:
string val= e.Row.Cells(index).Text;https://stackoverflow.com/questions/18258333
复制相似问题