尝试使用ASP.NET C#从我的DATAGRID获取Cell值,并收到错误消息“对象引用未设置为对象的实例”。这就是我所拥有的:
foreach (DataGridItem dgItem in dgPrintTicket.Items)
{
string itm = dgItem.Cells[1].FindControl("Item_Number").ToString();
}
谢谢
答案 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;
}