如何在网格内找到文本框的控件

时间:2011-04-06 11:24:01

标签: c# asp.net

我正在使用ASP.NET,我有一个GridView在editTemplate中有一个TextBox,但我无法找到该控件;每当我尝试将值分配给TextBox的{​​{1}}时,我就会得到GridView

我的代码如下:

NullReferenceException

问题:for (int i = 0; i < grdTransfer.Rows.Count; i++) { GridViewRow row = grdTransfer.Rows[i]; if (((CheckBox)row.FindControl("chkSelect")).Checked) { count = 1; (row.FindControl("txtDestLocation") as TextBox).Text = txtLocation.Text; } }

这意味着每当我尝试在运行时从NullReferenceException: object reference not set to the instance of an object之外分配null GridView的值时,我就会收到TextBox

我做错了什么?

2 个答案:

答案 0 :(得分:1)

一些事情。

  1. 发生的错误是什么,我看到两个可能的地方。
  2. 网格是否有页眉或页脚?你没有检查任何一个?
  3. 为什么你不把这些东西作为GridView.RowDataBound事件的一部分?

答案 1 :(得分:0)

我认为你在最后一个循环中得到了这个异常。

网格行集合索引从零开始,但计数将返回行的总数。所以你应该在循环时使用count -1 ...

for (int i = 0; i < grdTransfer.Rows.Count -1; i++) ..

我更喜欢使用foreach(grdTransfer.Rows中的GridViewRow行)。