ASP.NET Gridview 复选框列 - Onclick 和 jquery

Posted

技术标签:

【中文标题】ASP.NET Gridview 复选框列 - Onclick 和 jquery【英文标题】:ASP.NET Gridview Checkbox column - Onclick and jquery 【发布时间】:2011-07-08 01:26:45 【问题描述】:

点击复选框后,我需要检索直接父跨度的类值:

复选框列在 ItemTemplate 中定义为:

 <asp:CheckBox CssClass='<%# Eval("ID") %>'  Checked='<%# Eval("IsSelected") %>' 
                                        Text="" runat="server"  onclick="CartItemCheckClicked()" />

JS函数定义为:

function CartItemCheckClicked() 
        alert($(this).parent().attr('class')); //Undefined
        //alert($(this).attr('id')); //Undefined
    

输出示例 html

<span class="283"><input type="checkbox" onclick="CartItemCheckClicked();" checked="checked" name="grvShoppingCart$ctl02$ctl00" id="grvShoppingCart_ctl00_0"></span>

但结果总是'undefined'。如何访问复选框或父跨度?

【问题讨论】:

其他一切都解决了吗?当你做alert($(this).attr('class')) 时,你得到了你期望的结果吗?我猜this 不是你要找的this 是的.. 在 firefox 'this' = Window pages.aspx 中调试时。 【参考方案1】:

只需将复选框传递给点击功能:

onclick="CartItemCheckClicked(this);"

在js文件中比:

function CartItemCheckClicked(chk) 
        alert($(chk).parent().attr('class')); 
    

【讨论】:

另外,由于您使用 jQuery,您可以使用它来绑定点击事件 intead,那么您根本不用担心传递 arg。即$('input').click(function() alert($(chk).parent().attr('class')); )

以上是关于ASP.NET Gridview 复选框列 - Onclick 和 jquery的主要内容,如果未能解决你的问题,请参考以下文章

ASP:带有分页的 Gridview 复选框列未显示选中了哪个复选框

使用 JQuery 在 GridView ASP.NET 中选择所有复选框

asp.net gridview 复选框选择

带有复选框控件的 ASP.Net GridView 和 Jquery dataTable

当用户在 GridView ASP.NET 中选择一行时如何自动选择相同 ID 的其他行

使用 Jquery 在 asp.net GridView 中查找所有选中复选框