2010-11-24 96 views
3

我需要創建一個列,您可以在其中選擇帶有輸入的網格行:複選框。像雅虎,谷歌等使用的網格有類似的東西。 我做了一些事情,但我有一些問題,我認爲這也不是一個好的方法。使用SlickGrid中的複選框選擇行

有可能在行中有複選框並直接點擊它們,而不是像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; 
    }); 

謝謝!

+0

我在這裏舉了一個例子:http://li.ro/4bJw我做了什麼 – nightm 2010-11-25 10:04:24

回答