如何为ag-grid

时间:2016-11-06 16:35:00

标签: ag-grid

是否有办法为每行设置行选择复选框而不为其配置特殊列?我的意思是为我的gridOptions添加属性并查看每行附近的复选框,然后获取所有选定的行? 我阅读的所有文档都通过将其添加到特定列来展示如何执行此操作。

谢谢,

2 个答案:

答案 0 :(得分:0)

您仍然可以在没有复选框列的情况下进行行选择 - 您可以根据行选择进行选择,也可以使用带有复选框的列渲染(使用自定义单元格渲染器)。

请查看Selection Documentation以获取有关行选择的更多信息,并在Cell Rendering Documentation关于单元格渲染

答案 1 :(得分:0)

我知道在这篇文章中回答为时已晚。但它可能会帮助寻找解决方案的人。它适用于每行的复选框选择(单击行上的任意位置以选择复选框),移位/控制和切换选择。在这里,我只提供了必要的代码。

vm.gridOptions = {
  appSpecific  : {},
  onRowClicked : onRowClicked,
  onGridReady : function() {
    let api = vm.gridApi = vm.gridOptions.api;
  }
};

function toggleSelect(row) {
  row.node.setSelected(!row.node.isSelected(), false);
}


function onRowClicked(row) {
  var appSpecific = vm.gridOptions.appSpecific;
  var lastSelectedRow = appSpecific.lastSelectedRow;
  var shiftKey = row.event.shiftKey;

  // if not modifier keys are clicked toggle row
  if (!shiftKey) {
    toggleSelect(row);
  } else if (lastSelectedRow !== undefined) {

    if (shiftKey) {
      var startIndex, endIndex;
      // Get our start and end indexes correct
      if (row.rowIndex < lastSelectedRow.rowIndex) {
        startIndex = row.rowIndex;
        endIndex = lastSelectedRow.rowIndex;
      }
      else {
        startIndex = lastSelectedRow.rowIndex;
        endIndex = row.rowIndex;
      }
      // Select all the rows between the previously selected row and the
      // newly clicked row
      for (var i = startIndex; i <= endIndex; i++) {
        vm.gridApi.selectIndex(i, true, true);
      }
    }
  }
  // Store the recently clicked row for future use
  appSpecific.lastSelectedRow = row;
  getSelection(); // Implement functionality to get selected rows 
}