如何在YUI DataTable中找到已检查的行?

时间:2010-06-11 10:38:15

标签: datatable yui yui-datatable yui2

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

1 个答案:

答案 0 :(得分:2)

更好的方法可能是订阅Datatable的checkboxClickEvent,然后选中(或取消选中)复选框时,使用Datatable的selectRow / unselectRow方法以编程方式将该行标记为已选中。如果你这样做,它在UI中看起来更好(行突出显示),并且很容易使用Datatable的getSelectedRows方法获取所选行。