2010-11-24 94 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

回答