提示“
未将对象引用设置到对象的实例”(C#),请教原因,谢谢!
在 DataGrid1_UpdateCommand 中:
if(e.Item.ItemType==ListItemType.EditItem)
{
DataRowView r=(DataRowView)e.Item.DataItem;
string id=r[0].ToString();
....
调试时提示:“未将对象引用设置到对象的实例”错误;
而如果在 DataGrid1_ItemDataBound 中却不会错误,请教原因! 谢谢了!
------解决方案--------------------在执行DataGrid1_UpdateCommand 时,是不能这样访问的,除非你又从新绑定了一次
ItemDataBound事件的执行是在 执行 DataBind()方法时,这时又DataSource
而在执行UpdateCommand等类似的事件处理时,这时的DataSource已经没有了,只能通过DataGrid的ViewState来访问已经展示在页面中的数据。
------解决方案--------------------e.Item.DataItem已经不存在了,当然会提示错误,
DataSource在ItemDataBound是是存在的,但UpdateCommand是通过PostBack的,这个时候DataSource已经不存在,如果你要使用ID之类的数据,应该先保存下来,例如DataKeyField跟DataKeys配合使用就可以保存ID字段。
------解决方案--------------------强