我正在使用带有复选框列的YUI DataTable,如下所示:
var myColumnDefs = [
{key:"check", label:'', formatter:"checkbox"},
{other columns...}
];
如何迭代已检查过的所有行?
更新:
以下是我目前的解决方法:
function getCheckedIds() {
var records = yuiDataTable.getRecordSet().getRecords();
var ids = '';
for (i=0; i < records.length; i++) {
var checked = false;
if (records[i] != undefined)
{
checked = $('#' + records[i].getId() + ' td div.yui-dt-liner input.yui-dt-checkbox').attr('checked');
if (checked) {
if (ids != '') {
ids += ',';
}
ids += records[i].getData("item.id");
}
}
}
return ids;
}
答案 0 :(得分:2)
更好的方法可能是订阅Datatable的checkboxClickEvent,然后选中(或取消选中)复选框时,使用Datatable的selectRow / unselectRow方法以编程方式将该行标记为已选中。如果你这样做,它在UI中看起来更好(行突出显示),并且很容易使用Datatable的getSelectedRows方法获取所选行。