2017-03-20 43 views
2

(我想要做的事:你知道吗?你Ctrl或Shift如何选择多行为什么不让它点击切换,而不需要键盘按键?)ag-grid row复选框选择。使复选框的选择等同于行选择

我试图使rowSelected事件或rowClicked事件始终检查整行左列的复选框。

并添加到它,所以点击另一行,添加它。点击另一行,检查并选择该行。

点击一个已经选好的已经检查过的行......它应该“取消”和“取消选择”。

所以...行选择多个+复选框多个,是等价的。

   "rowSelection": "multiple", 
       "onRowSelected": rowSelected, 
       "suppressRowClickSelection": false, 


function rowSelected(event){ 
    console.log("t1 " + event.node.isSelected()); 
    if(event.node.isSelected()){ 
     event.node.setSelected(false); 
    } else { 
     event.node.setSelected(true); 
    } 
} 

Plunker例:

https://embed.plnkr.co/vf0aV6Q0MgA4ZvtzWhFb/

(Plunker例如,你可以不取消行了)

+0

也许' “onRowSelected”:rowSelected'应该是' “onRowSelected”:rowClicked' –

+0

我一直都。 rowClicked和rowSelected只是该函数的名称。我在代码中有正确的函数名称。问题是ag-grid试图循环遍历所有的NODES而不是选择的和崩溃的。 rowSelected - >选择行 - >选择复选框 - >完成。 rowSelected - >取消选择行 - >取消选中复选框 - >完成。我无法建立这种逻辑。 – Dexter

回答

4

解决。基本上覆盖了他们的默认“选择模型”。

function RowClickEventHandler(event){ 
    if(event.node.isSelected()){ 
     console.log("deselected"); 
     event.node.setSelected(false, false); 
    } else { 
     event.node.setSelected(true); 
     console.log("selected, add"); 
    } 

} 

var gridOptions = { 
    columnDefs: columnDefs, 
    onRowClicked: RowClickEventHandler, 
    suppressRowClickSelection: true, 
    suppressCellSelection: true, 
    rowSelection: 'multiple', 
    rowData: null 
}; 

https://plnkr.co/edit/KHj1lstv9GQncxlX4Gvx?p=preview