【问题标题】:How can I disable right click/context menu for ag-grid?如何禁用 ag-grid 的右键单击/上下文菜单?
【发布时间】:2019-05-11 10:05:54
【问题描述】:

我正在使用 ag-grid 企业版,我想禁用上下文菜单或右键单击网格单元格,但我没有找到任何解决方案。

这是我的代码

<ag-grid-angular #agGrid style="width: 100%; height: 100%;" id="myGrid" 
[rowData]="rowData" class="ag-theme-balham" [columnDefs]="columnDefs" 
[enableRangeSelection]="true" (gridReady)="onGridReady($event)"></ag-grid- 
angular>

【问题讨论】:

    标签: ag-grid ag-grid-angular


    【解决方案1】:
    suppressContextMenu:true for gridOptions
    

    会工作

    【讨论】:

      【解决方案2】:

      [suppressContextMenu]="true" 会满足你的要求。

      或者,如果您在组件中定义getContextMenuItems,只需从函数返回空数组。

      this.getContextMenuItems = function getContextMenuItems(params) {
        return [];
      };
      
      <ag-grid-angular
          #agGrid
          .........
          [getContextMenuItems]="getContextMenuItems"   // provide the function here
          (gridReady)="onGridReady($event)"
          ></ag-grid-angular>
      

      看看this plunk I've created

      您还可以有条件地决定是否不希望任何特定列使用它或不使用参数params

      【讨论】:

      • 谢谢。但是添加 [suppressContextMenu]="true" 看起来是一个简单的解决方案
      • 我尝试了 suppressContextMenu = true 和上述方法。而且他们出人意料的结果不一样。我试图抑制 1 列上的上下文菜单,因为它包含 URL/链接,所以我实现了 getContextMenu() 并仅在用户单击该特定列时检查,以返回 [] 或 null。右键单击不会将浏览器默认菜单显示为“在新选项卡中打开链接”。但是suppressContextMenu=true的解决方案,确实实现了右键调出浏览器默认。但在这种情况下,所有列都会受到影响。
      • 这就是我为getContextMenuItems 提供答案的原因。保留[suppressContextMenu]="true" 将禁止所有列的上下文菜单
      • 空数组对我有用,但显示错误 UserFunc is not a function 我应该怎么做。我必须为列提供上下文菜单项,但只要在 agggrid 中旋转或更改选项卡。我得躲起来。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-11-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-17
      • 2019-12-17
      • 2010-09-27
      相关资源
      最近更新 更多