3

我正在使用带有这样一个复选框列的 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;    
}
4

1 回答 1

2

一种更好的方法可能是订阅DataTable的CheckBoxClickevent,然后使用DataTable的Selectrow/UNSelectrow方法选择(或未选择)将复选框编程为选定的复选框。如果你这样做,它在 UI 中看起来会更好(行被突出显示),并且使用 Datatable 的 getSelectedRows 方法很容易获得选定的行。

于 2010-06-22T13:14:05.267 回答