首页 新闻 搜索 专区 学院

关于if(e.Row.RowType == DataControlRowType.DataRow)的一个问题

2
悬赏园豆:20 [已解决问题] 解决于 2012-06-01 15:54

if (e.Row.RowType == DataControlRowType.DataRow)用来判断当前行是否为数据行,但是小弟在给GridView的TemplateField中的ItemTemplate里面的checkbox绑定一个onclick事件时,发现最后一行的checkbox没有被绑定onclick(点击页面上的checkbox无事件响应,页面源代码也无事件),后来将if中的条件改为if (e.Row.RowType == DataControlRowType.DataRow||e.Row.RowType == DataControlRowType.Footer)就正常了,但是,小弟还是不明白为什么,有哪位大哥能帮忙解释一下,谢谢。

一菜鸟的主页 一菜鸟 | 初学一级 | 园豆:139
提问于:2010-12-28 11:11
< >
分享
最佳答案
0

貌似模板内按钮事件是无法像平常那样触发的,需要靠gridview的click事件来触发,我以前也遇到这样的问题,你添加了e.Row.RowType == DataControlRowType.Footer这一句应该是当你点击到gridview的footer部分时才会有效,点数据区域可能是无效的,貌似应该是设置成触发了click事件,并且点击区域在checkbox那一列来设置才能很好的解决事件的触发。

收获园豆:20
massinger | 小虾三级 |园豆:706 | 2010-12-28 12:31
又看了看以前写的代码,发现是使用rowcommand事件来实现点击事件的, protected void UserList_RowCommand(object sender, GridViewCommandEventArgs e) { switch (e.CommandName.ToString()) { case "Del": ......
massinger | 园豆:706 (小虾三级) | 2010-12-30 09:44
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册