如果选中 CheckAll 则全选,如果未选中则使用 jQuery 从 Gridview 中取消全选
Posted
技术标签:
【中文标题】如果选中 CheckAll 则全选,如果未选中则使用 jQuery 从 Gridview 中取消全选【英文标题】:If CheckAll is selected then select all, if not then deselect all from Gridview using jQuery 【发布时间】:2013-04-15 13:18:01 【问题描述】:我只是坚持使用复选框进行操作,我有一个 Gridview,在标题和行中都有第一列作为复选框,复选框与数据库中的 iID 值绑定。我有时想删除行“全部”(按标题复选框),有时也想删除“选定”(按复选框)。现在我正在使用这段代码:
JavaScript
function checkcheckboxPrint()
var checkfag = false;
var id = 0;
var table = document.getElementById('<%=grdRefPhysician.ClientID%>');
if (table != null)
for (i = 1; i < table.rows.length; i++)
var chkRead = table.rows[i].cells[0].getElementsByTagName("input")[0];
var DivID = table.rows[i].cells[0].getElementsByTagName('div')[0];
if (chkRead != null)
if (chkRead.type == 'checkbox')
if (chkRead.checked)
id = DivID.innerhtml + "," + id;
checkfag = true;
alert(id);
if (checkfag == true)
$("#<%=hdnIDs.ClientID %>").val(id);
return true;
else
alert("Please select record to delete.");
return false;
jQuery
$(document).ready(function ()
$("input:checkbox").change(function ()
$("#DivDelete").show('slow');
);
);
如您所见,我正在使用 Hidden 字段将这些逗号 (,) 分隔的 ID 发送到服务器端,基本上它可以工作,但是,如果我检查标题行,我不会经历一种情况那么所有的复选框都应该被选中,如果我取消选中它,那么所有的复选框都应该被取消选择,反之亦然,我在点击这个时调用这个 js 方法
HTML
<div id="DivDelete" style="text-align:left;display:none;">
<asp:Button ID="btnDeleteAll" OnClientClick="return checkcheckboxPrint();" runat="server" Text="Delete" />
</div>
我只是想使用 jQuery 将逗号分隔的 ID 存储到隐藏字段,并带有 checkAll 和独立的检查工具!
附加的我的网格屏幕截图
感谢任何帮助! 谢谢
【问题讨论】:
【参考方案1】:我不认为
table.rows[i].cells[0]
将在一个 js 对象上工作。您需要做的是为每个复选框添加一个更改处理程序,使用要删除的选定 id 更新一个数组(您可以通过在当前复选框上使用 .parent().find(yourIdDiv) 找到 id。检查长度当用户单击 DeleteAll 并相应地继续时的数组。
【讨论】:
感谢 Elio 的回复,但问题已解决@我这边 :)以上是关于如果选中 CheckAll 则全选,如果未选中则使用 jQuery 从 Gridview 中取消全选的主要内容,如果未能解决你的问题,请参考以下文章