2015-04-02 62 views
2

我在光滑的網格上有兩個複選框列,並且目前無法使複選框正常工作。如果你在一邊檢查另一邊也被檢查,如果你選擇所有在雙方都雙方都檢查。有沒有一種方法來重載slickgrid上的registerplugin使兩個複選框單獨運行?兩個slickgrid複選框可供選擇全部

我有這樣的想法。

switch (new checkboxselected().getcolumn()) { 
    case checkboxApprove = grid.registerPlugin(checkboxApprove), 
     break 
    case checkboxDeny = grid.registerPlugin(checkboxDeny) 
} 

both columns

Checking on select all selects both columns![][2]

var checkboxApprove = new Slick.CheckboxSelectColumn({ 
    cssClass: "slick-cell-checkboxsel" 
}); 
columns.push(checkboxApprove.getColumnDefinition()); 

var checkboxDeny = new Slick.CheckboxSelectColumn({ 
    cssClass: "slick-cell-checkboxsel" 
}); 
columns.push(checkboxDeny.getColumnDefinition()); 

$(function() { 
    for (var i = 0; i < 10; i++) { 
     var d = (data[i] = {}); 
     d["title"] = "Task " + i; 

    } 

    grid = new Slick.Grid("#myGrid", data, columns, options); 
    grid.setSelectionModel(new Slick.RowSelectionModel({selectActiveRow: false})); 
    grid.registerPlugin(checkboxApprove); 
    grid.registerPlugin(checkboxDeny); 

    var columnpicker = new Slick.Controls.ColumnPicker(columns, grid, options); 

    grid.render(); 

回答

2

的問題是,你不必爲每列的唯一列ID。他們都使用默認ID(_checkbox_selector),因此結束了相互作用。這是一個受過教育的猜測,因爲我目前無法測試它。

您應該能夠通過添加一列編號爲傳入的選項來解決它:

var checkboxDeny = new Slick.CheckboxSelectColumn({ 
     columnId: "_checkbox_selector_deny" 
     cssClass: "slick-cell-checkboxsel" 
});