asp.net中gridview控件的一下问题,急!

来源:百度知道 编辑:UC知道 时间:2024/05/18 15:24:50
我用了一个gridview控件,然后添加了一个模板列,然后在模板列ItemTemplate里拖放了一个HTML的TextBox文本框控件,然后把这个控件作为服务器控件运行,并给这个他的value属性绑定一个数据库的字段,但是现在出现一个问题是,我无法获得这个TextBox的值。
if (GridView1.Rows.Count > 0)
{
string s = this.GridView1.Rows[2].Cells[0].Text;
}
s值为空

然后我换成:
if (GridView1.Rows.Count > 0)
{
string s = this.GridView1.Rows[2].Cells[0].Controls[0].(这里就点不出来了,因为Controls是只能获得服务器控件的)
this.TextBox1.Text = s;
}
我现在应该怎么解决这个问题呢?
要求是不能用服务器控件,要是能用那个我早就换了!

string s = this.GridView1.Rows[2].Cells[0].Controls[0]

你这样写肯定点不出来的。

string s = ((HtmlInputText)this.GridView1.Rows[2].Cells[0].Controls[0]).Text
应该这样写,先强制转换,这样就可以读取了。

下边的这个,是不是应该用:
string s = this.GridView1.Rows[2].Cells[0].Controls[0].text

.不出来很正常。因为可以在运行的时候加入新的控件,所以只有在运行时才能知道Controls[0]是什么。

string s = this.GridView1.Rows[2].Cells[0].Controls[0]
这句难道没报错吗

TextBox tb = gridview.FindControl("ControlID");
string tb = tb.text;

那你把HTML的换成服务器的不就OK了

指定模版中TextBox控件的id,采用findcontrol(id)