我有一个自定义的固定标头表元素。基本上它是如何工作的我设置了一个类,该类将根据从数据库返回的数据填充到该类型的类列表中。我希望每个返回的元素都有复选框,如果选中它将被添加到数组中。当用户选择“打印”时,我有逻辑将打印所选行的记录。我还在标题中为该列选择了所有选项。这是一个简单的例子:
|Name|ID|Product|Date|Select All 'checkbox'|
-----------------------------------------
|JonS|01|prodOne|Date|'checkbox' |
|AmyA|02|prodTwo|Date|'checkbox' |
当用户选择全选复选框时,我有以下javascript,它将选择/取消选中每个复选框元素。
function showHideAll() {
if (document.getElementByID('AllCheckBox').checked == 1){
$('.RowCheckBoxClass').attr('checked',true);
}
else {
$('.RowCheckBoxClass').attr('checked',false);
}
}
一切正常,一切都很好。底部有一个“打印”按钮。基本上我将它作为打印队列运行。选择所需的记录并点击打印,它将打印所选记录。我怎样才能找到所选的行?我需要选中行的ID复选框。在我的班级将是数据列表,我可以添加一个onclick函数。问题是,我不希望每次用户单击复选框时都回发,并且必须保留查询字符串。我只想获取复选框行的ID,并使用javascript或c#方法将其添加到数组中。
我正在考虑使用jscript方法扫描并查看检查了哪些框。但是,我仍然无法将这些添加到队列中。任何帮助或想法?
答案 0 :(得分:1)
看起来你已经在使用jQuery了:
var checkedIdList = [];
$('.RowCheckBoxClass').each(function(_, cb) {
if (cb.checked) {
checkedIdList.push($(cb).closest('tr').find('td')[1].text());
}
});
如果“id”值是数字,那么您可能希望将文本转换为数字:
checkedIdList.push(parseInt($(cb).closest('tr').find('td')[1].text(), 10));
答案 1 :(得分:0)
更好的方法是为所有选中的项添加一个类,并在复选框中添加一个类来存储ID。现在,当您尝试获取所有已检查的类时,使用选中的类调用all并加入所有ID。
<小时/> <击>
function showHideAll() {
if (document.getElementByID('AllCheckBox').checked == 1){
$('.RowCheckBoxClass').attr('checked',true);
}
else {
$('.RowCheckBoxClass').attr('checked',false);
}
}
击> <击> 撞击> 可以简化为
function showHideAll() {
$('.RowCheckBoxClass').attr('checked', $('#AllCheckBox').attr('checked'));
}
答案 2 :(得分:0)
要扫描页面并找到所有选中的行,您可以这样做(因为您已经使用了jQuery):
$(".RowCheckBoxClass:checked");