Jquery函数用于gridview上的操作和复选框

gridview中的第一列(gvAvailable)是当前复选框列“chkSelect”。 它现在的工作方式是用户可以检查gridview上的多个复选框,但我想要一个jquery函数来取消选择gridview上的所有复选框,除了单击的复选框。

我也在寻找一种方法来通过点击按钮访问jquery的已检查行的列。

谢谢你的帮助

以下是生成的html的外观

 GuidIdName FacilityRoom
24 000101020201 Test Test Facility  
25 1001 Test 2 Test 3  

如果将相同的类添加到标记中的每个复选框,则可以通过说明检索它们的数组

 $('.classname') 

这将返回对象数组。 然后,您可以在arrays上调用“each”并取消全部取消。

 function removeChecks() { $('.classname').each(function() { $(this).removeAttr('checked'); }); } 

然后在每个复选框的单击处理程序中添加以上函数调用:

 $('.classname').each(function() { $(this).click(function() { removeChecks(); $(this).attr('checked', 'checked'); }); }); 

上面的代码应该设置为在页面加载时运行。

在这个例子中,我放了一个按钮来检查,一个按钮取消选中gridview复选框:

       

我假设您要确保用户单击复选框不会切换? 如果是这样,请继续下面。

首先,只需为gridview中的所有复选框指定一个类名。

每当单击一个复选框时,向其添加另一个类以表示它是物理选择的。

 $('.checkbox').click(function(){ $(this).addClass('checked'); }); 

现在,当用户点击顶部的全选复选框(让我们称之为“selectAll”)时,遍历所有复选框并在检查“已检查”类时切换状态

 $('#selectAll').click(function(){ var status = $(this).attr('checked') $('.checkbox').each(function(){ //only toggle if not set if(!$(this).hasClass('checked')){ if(status){ $(this).attr('checked', 'checked'); } else{ $(this).attr('checked', ''); } } }); }); 

这应该有希望让你顺利。

现在,访问已检查行的列?

 You could add an onclick event to each table row. $('#tablename tr').click(function(){ //do something }); 

我发现这个非常有用的使用jQuery检查/取消选中ASP.NET CheckBox列表中的所有项目