Gridview内控件值取得问题
问题,有一个GridView,Gridview内有一列Cells[1]在protected void grid__RowDataBound(object sender, GridViewRowEventArgs e)方法里设置是这样设置的
e.Row.Cells[1].Text = div;
div是动态构造的表格 div += "<table id=\"tbl_Caption\"
div += "<td><input name=\"Time_Hearing_A\"
现在我要在后台为Time_Hearing_A的input控件添加事件
写是这么写的
HtmlInputText npt = (HtmlInputText)e.Row.Cells[1].FindControl("Time_Hearing_A")
但这一句执行就报错,显示错误”未将对象引用到实例中“ 。
请问有谁知道怎么取得Time_Hearing_A控件对象? 请注意,我这个input控件是以这样的形式放的e.Row.Cells[1].Text = div;
并不是直接在gridview内的单元格内放置的input控件。 --------------------编程问答-------------------- 注意,这里的div += " <td> <input name=\"Time_Hearing_A\" 里已经为input控件申明了是 runat="server" 类型
--------------------编程问答-------------------- 顶啊 --------------------编程问答-------------------- name=\"Time_Hearing_A\" 改成 id=\"Time_Hearing_A\"
看看 --------------------编程问答-------------------- 首先,你必须通过id取,而不是name
另外,加上runat
如果你打算精确控制布局,用GridView是不行的,
用Repeater,如果你熟悉js,可以用Repeater实现GridView的全部功能,
更好的是,你能控制每一部分。 --------------------编程问答-------------------- 或者Request.Params["Time_Hearing_A"] --------------------编程问答--------------------
id我其实程序里也写了,只是这里没写出来。不过一样没用
还是报“未将对象引用到实例中” --------------------编程问答-------------------- FindControl('')找的是控件的Id属性,在你构造<input name=\"Time_Hearing_A\" >时再加上一个id属性
如下
<input name=\"Time_Hearing_A\" id=\"Time_Hearing_A\" >--------------------编程问答--------------------
这个只是取值,我要的是取得这个对象,并对其添加事件
--------------------编程问答-------------------- 我再说一下
1. id我已经写了,报同样的错
2. runat = "server" 我也写了
3. 如果Gridview内绑定input的模板列,那么这个input控件我在后台用findcontrol是能取到的
问题是,现在我这里用的是e.Row.Cells[1].Text = div,就是说gridview内的第2个单元格内
我用一个div层来实现具体内容的,而input控件是放在div里的。
这个时候,用
HtmlInputText npt = (HtmlInputText)e.Row.Cells[1].FindControl("Time_Hearing_A")
这个语句取控件,一直是报“未将对象引用到实例”的错。
--------------------编程问答-------------------- 看来这个问题难倒大家了
补充:.NET技术 , ASP.NET