在SlickGrid中选中带复选框的行

时间:2010-11-24 22:02:39

标签: select checkbox slickgrid

我需要创建一个列,您可以使用input:checkbox选择网格行。像雅虎,谷歌等使用的网格有类似的东西。 我做了一些事情,但我遇到了一些问题,我认为这也不是一个好的方法。

可以在行中创建复选框并直接点击它们,而不是像example4-model中那样?

我的想法是:

    < div id="inlineFilterPanel" class="slick-header-column" style="padding: 3px 0; color:black;">
            <input type="checkbox" name="selectAll" id="selectAll" value="true" / >
   < input type="text" id="txtSearch2" value="Desktops" />
        </div>

d["check"] = '< INPUT type=checkbox value='true' name='selectedRows[]' id='sel_id_<?php echo $i; ?>' class='editor-checkbox' hideFocus />';

grid.onSelectedRowsChanged = function() {
                selectedRowIds = [];
    $('#myGrid' + ' :checkbox').attr('checked', '');
                var rows = grid.getSelectedRows();
                for (var i = 0, l = rows.length; i < l; i++) {
                    var item = dataView.rows[rows[i]];
                    if (item) {
      selectedRowIds.push(item.id);  
      $('#sel_' + item.id).attr('checked', 'checked');
     }

                }
            };


function selectAllRows(bool) {
                var rows = [];
                selectedRowIds = [];

                for (var i = 0; i < dataView.rows.length; i++) {
                    rows.push(i);
                    if (bool) {
      selectedRowIds.push(dataView.rows[i].id);
      $('#sel_' + dataView.rows[i].id).attr('checked', 'checked');
     } else {
      rows = [];
      $('#sel_' + dataView.rows[i].id).attr('checked', '');
     }     
                }

                grid.setSelectedRows(rows);
   }

   grid.onKeyDown = function(e) {
                // select all rows on ctrl-a
    if (e.which != 65 || !e.ctrlKey)
                    return false;

    selectAllRows(true);

    return true;
            };

   $("#selectAll").click(function(e) { 
                Slick.GlobalEditorLock.cancelCurrentEdit();

    if ($('#selectAll').attr('checked'))
     selectAllRows(true);
    else
     selectAllRows(false);

    return true;
   });

谢谢!

1 个答案:

答案 0 :(得分:5)

我已将复选框选择列的示例实现添加到http://mleibman.github.com/SlickGrid/examples/example-checkbox-row-select.html

这是即将发布的2.0版本的一部分。