【问题标题】:ag-grid disable checkbox programatically via gridOptions APIag-grid 通过 gridOptions API 以编程方式禁用复选框
【发布时间】:2018-05-10 13:30:28
【问题描述】:

我有一个checkboxSelection=true的专栏

在某些情况下,通过API,我想决定复选框是否是只读的,即我不能选中/取消选中。

这可能吗?

【问题讨论】:

  • 所以您也想禁用某些行的行选择?或者只是能够使用复选框来选择一行?
  • 也禁用某些行的行选择 - 将这些行设为“只读”以供选择
  • 对于上述问题有什么推荐的解决方案吗?
  • 为了将来参考,这里是disabling checkbox in ag-grid的完整信息。

标签: ag-grid


【解决方案1】:

如果有人仍在为此寻找答案, 我找到了一个简单的解决方案,

在您的gridOptions 中添加以下内容

gridOptions = {
columnDefs: [
  {
    checkboxSelection: true,
    cellStyle: params => 
      params.value === 'YOUR_VALUE' ?  
          {'pointer-events': 'none'}
          : ''
   }
 ]  
};

【讨论】:

    【解决方案2】:

    checkboxSelection 属性可以是布尔值或函数。

    https://www.ag-grid.com/javascript-grid-column-properties/#gsc.tab=0

    通过使用函数,您可以显示或隐藏基于行的复选框:

    checkboxSelection = function(params) {
       // add your cancheck-logic here
       if (params.data.yourProperty) {
          return true;
       }
       return false;
    }
    

    开箱即用无法禁用复选框。一种可能的方法是将复选框重置为原始状态:

    onRowSelected:(params) => {
        if(params.data.yourProperty && params.node.isSelected())
            params.node.setSelected(false);
    }
    

    【讨论】:

    • 亚历山大,谢谢!我的意图是禁用它而不是隐藏它 - 因为我的一些复选框已选中但不能取消选中...
    • Alexander,我需要禁用复选框组件,如“disabled=true”在企业版中,工具面板中有一个“functionsReadOnly=true”可以完全禁用它 - 你可以看到这个例子这里:ag-grid.com/javascript-grid-tool-panel/#example-read-only这就是我需要的
    • Aviram,你有没有让这个在单独的行上工作?
    【解决方案3】:

    你可以试试 cellRenderer,而不是使用 checkboxSelection=true

      field: 'isMandatory',
      cellRenderer: (params) => {
           if (params.value) {
              return `<input type="checkbox" checked/>`;
           }
           else {
              return `<input type="checkbox" />`;
           }
     }
    

    【讨论】:

      【解决方案4】:

      根据文档,您可以在 gridConfig 中使用 isRowSelectable

          isRowSelectable: function(rowNode) {
              return rowNode.data ? rowNode.data.condition: false;
          },
      

      【讨论】:

        【解决方案5】:

        isRowSelectable 在单选模式下不起作用。 最好使用 css 禁用它

        cellClassRules: { 'checkbox-disabled': isCheckboxDisabled , }

        【讨论】:

          猜你喜欢
          • 2021-06-07
          • 1970-01-01
          • 2018-09-18
          • 2018-01-23
          • 1970-01-01
          • 2016-10-29
          • 1970-01-01
          • 2018-02-14
          • 2020-02-08
          相关资源
          最近更新 更多