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 に答える