问题:
在DataList中放了一个ASP:Button,点击了之后能看到页面刷新的动作,但是并没有触发 DataList1_ItemCommand 的动作。除此之外,在试图获取 DataList1.SelectedItem 的时候也发现其值为null。
原因:
查了好久查到……因为点击按钮后程序先执行Page_Load函数,而在Page_Load这里又重新对DataList1进行了数据绑定,DataList1所有和数据有关的属性被重置。所以执行到click时,DataList1.SelectedItem的值是null,于是就出现了System.NullReferenceException异常。而且也不会触发DataList1_ItemCommand的动作了。
解决方案:
在Page_Load事件里加上如下判断:
if(!Page.IsPostBack)
{
// 对DataList进行数据绑定的代码
}