“博”技术之精,“客”网络之友。

博,客之博;客,博之客。
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

gridview 中模板列无法响应row_command事件

Posted on 2007-10-30 17:46  nect  阅读(813)  评论(3编辑  收藏  举报
今天遇到了一个问题,本来想实现的效果是,在gridview中增加一列锁定/解锁的图片,点击图片后,在用户锁定/解锁状态之间互相切换,开始的代码是这样的:
aspx
<asp:TemplateField HeaderText="启用" HeaderStyle-Width="40px" HeaderStyle-CssClass="usertable_th">
                                    
<ItemTemplate>
                                        
<asp:ImageButton runat="server" ID="CheckUser" ImageUrl='<%# (Convert.ToInt32(Eval("UserPermited").ToString()))==1?"/images/icon/unlock.gif":"/images/icon/lock.gif"%>'
                                            AlternateText='
<%# (Convert.ToInt32(Eval("UserPermited").ToString()))==1?"用户已启用,点击“锁定用户":"用户被锁定,点击解锁" %>'
                                            CommandName="ONOFF" OnClick="CheckUser_Click" />
                                    
</ItemTemplate>
                                    
<EditItemTemplate>
                                        
<asp:CheckBox ID="chkUser" runat="server" Checked='<%# (Convert.ToInt32(Eval("UserPermited").ToString()))==1?true:false %>'
                                         ToolTip='
<%# (Convert.ToInt32(Eval("UserPermited").ToString()))==1?"用户已启用,点击锁定用户":"用户被锁定,点击进行解锁" %>' />
                                    
</EditItemTemplate>
                                
</asp:TemplateField>


但是不知道为什么gridview始终无法相应row_Command事件,所以也无法进行CommandName=="ONOFF"的判断。

搞了半天,从网上找了资料也没有相关说明,不过找到了一个别人用相同方法却可以使用的例子(查看),郁闷啊,对.net感兴趣的网友可以帮我提提我是哪里弄得不对。

我最后的解决方法是:不在imagebutton上相应事件了,增加了一个username列(ButtonField类型),点击ButtonField可以触发row_command事件,最后用的是这个解决方法,不爽。。。