尝试使用 ASP.NET C# 从我的 DATAGRID 中获取单元格值,我收到错误消息“对象引用未设置为对象的实例”。这是我所拥有的:
foreach (DataGridItem dgItem in dgPrintTicket.Items)
{
string itm = dgItem.Cells[1].FindControl("Item_Number").ToString();
}
谢谢
dgItem.Cells[1].FindControl("Item_Number") 为 null,ToString() 正在尝试将 null 对象转换为失败的字符串。您需要确保 A) 数据网格中至少有 2 列,并且 B) FindControl("Item_Number") 实际上会返回一些内容。
要克服“对象引用未设置为对象的实例”错误,请确保您的代码为 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;
}