如何在DATAGRID中获取单元格的值?

时间:2013-10-18 15:44:24

标签: c# asp.net datagrid

尝试使用ASP.NET C#从我的DATAGRID获取Cell值,并收到错误消息“对象引用未设置为对象的实例”。这就是我所拥有的:

foreach (DataGridItem dgItem in dgPrintTicket.Items)
{
    string itm = dgItem.Cells[1].FindControl("Item_Number").ToString();
}

谢谢

2 个答案:

答案 0 :(得分:1)

dgItem.Cells [1] .FindControl(“Item_Number”)为null,ToString()试图将null objecdt转换为失败的字符串。您需要确保A)数据网格中至少有2列,B)FindControl(“Item_Number”)实际上会返回一些内容。

答案 1 :(得分:1)

要克服“对象引用未设置为对象的实例”错误,请使代码为null安全:

foreach (DataGridItem dgItem in dgPrintTicket.Items)
{
    var control = dgItem.Cells[1].FindControl("Item_Number");

    string itm = control != null ? control.ToString() : null;
}

但我想你应该尝试通过以下代码获取单元格的值:

foreach (DataGridItem dgItem in dgPrintTicket.Items)
{
    string itm = dgItem.Cells[1].Text;
}

如果FindControl确实找到了一个控件,请使用以下代码片段:

foreach (DataGridItem dgItem in dgPrintTicket.Items)
{
    var control = dgItem.Cells[1].FindControl("Item_Number") as Label;

    string itm = control != null ? control.Text : null;
}