Выберите строки с флажком в SlickGrid - PullRequest
3 голосов
/ 25 ноября 2010

Мне нужно сделать столбец, в котором вы можете выбрать строки сетки с помощью флажка input :.Сетки, подобные тем, которые используются Yahoo, Google и т. Д., Имеют нечто подобное.Я что-то сделал, но у меня есть некоторые проблемы, и я думаю, что это тоже не очень хороший подход.

Возможно иметь флажки в строках и нажимать на них напрямую, не так, как в примере example4?

Моя идея была:

    < 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 Ответ

5 голосов
/ 28 ноября 2010

Я добавил пример реализации столбца выбора флажка для http://mleibman.github.com/SlickGrid/examples/example-checkbox-row-select.html

Это часть предстоящего выпуска 2.0.

...