首页 新闻 会员 周边 捐助

gridview中rowcreated事件里我想从模板列中找到一个label

0
悬赏园豆:5 [待解决问题]

gridview中rowcreated事件里我想从模板列中找到一个label,我因为试着找了,但是获取的值为空,这是为什么呢?
我找label的代码是:
e.row.cells[0].findcontrol("label1")
这样写有什么不妥吗?请高手指点啊……

kdkler的主页 kdkler | 初学一级 | 园豆:154
提问于:2010-08-21 11:39
< >
分享
所有回答(3)
0

尝试这种形式。

(TextBox)(GridView1.Rows[e.RowIndex].Cells[1].Controls[0])).Text.ToString()

Astar | 园豆:40805 (高人七级) | 2010-08-21 11:45
0

两种方式:

e.Row.Cells[0].FindControl("label1") as Label ; 到当前行的特定列去找控件, 这样更准确、效率更高,不同遍历整个行的所有列;

e.Row.FindControl("label1") as Label ;在整个行的所有列查找控件、效率低,需要遍历。

HUHU慈悲 | 园豆:9973 (大侠五级) | 2010-08-21 11:51
0

e.row.cells[0].findcontrol("label1")这样是不对的。

应该是在行上进行查找。e.row..findcontrol("label1")

邢少 | 园豆:10926 (专家六级) | 2010-08-23 08:21
这种方法我用过了,还是不行啊,有其他的方法吗?
支持(0) 反对(0) kdkler | 园豆:154 (初学一级) | 2010-08-24 15:45
rowcreated 事件有问题吧。 如果你要实现的是在行绑定的时候使用绑定模板中的值,建议用RowDataBind事件 应RowDataBind事件是可以实现逻辑处理的。 void rpt_RowDataBound(object sender, GridViewRowEventArgs e) { DataRowView drv = (DataRowView)e.Row.DataItem; if (drv != null) { TextBox tbx = (TextBox)e.Row.FindControl("CTText" + _dataValueField); tbx.ForeColor = _color; ..... 测试过的。
支持(0) 反对(0) 邢少 | 园豆:10926 (专家六级) | 2010-08-24 16:46
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册