ASP.NET 中 按钮 单击事件 访问 GridView控件中的模板字段的问题。。。。。。。。。。。。。
btn_Click事件:
....
for (int i = 0; i < GridView1.Rows.Count; i++)
{
TextBox quantity = (TextBox)this.GridView1.Rows[i].FindControl( "txtQuantity ");
this.Label1.Text = quantity.Text;
}
.....
当单击按钮时,出现如下错误:
异常详细信息: System.NullReferenceException:
未将对象引用设置到对象的实例。
错误指向: this.Label1.Text = quantity.Text; 这段代码。
不知是什么原因??
------解决方案--------------------看看TextBox quantity = (TextBox)this.GridView1.Rows[i].FindControl( "txtQuantity ");
这句以后的quantity 的值是不是null
------解决方案--------------------TextBox quantity = (TextBox)this.GridView1.Rows[i].FindControl( "txtQuantity ");
===========
这里findcontrol出来的为null,就会出现异常
由于用了模板列,在btn_Click事件以前要重新绑定一下数据才能取得到值
------解决方案--------------------没有判断ROWS的类型吧?
------解决方案--------------------估计i == 0的时候就会出错
因为这是头,而头只是个字符串而已
所以你进行处理的时候还要进行判断
------解决方案--------------------wxndiablo(刺客)已经说了。
------解决方案--------------------不是Rows的类型,是Row的类型。
------解决方案--------------------if (e.Row.RowType == DataControlRowType.DataRow)
{
}
if (e.Row.RowType == DataControlRowType.Header)
{
}