如何在 Extjs 网格中禁用删除图标

Posted

技术标签:

【中文标题】如何在 Extjs 网格中禁用删除图标【英文标题】:How to disable Delete icon in Extjs grid 【发布时间】:2019-12-26 11:03:38 【问题描述】:

我有一个来自 extjs 的示例代码,该操作是我编辑、删除、复制的列的多列的一部分。我想根据另一个字段值禁用删除图标。我还有一个名为 IS_USED 的列,它返回真/假。如果 IS_USED 为真,则应禁用删除按钮。 我尝试在 action 中编写 handler,但无法正常工作。 我是 extjs 的新手,任何帮助或解决方法都是可观的。

action: 
  iconCls: 'x-icon-cross-on',
  text:  terms.del,
  url:   url.destroy,
  useAjax: true,
  confirm: terms.confirm,
  handler: function(grid, record, action, domEl, response) 
    if ( !response.success) 
      test.ui.Msg.flash(response.message, test.ui.Msg.ERR);
      javascript.scroll(0,0);
     else 
      test.ui.Msg.success(response.message);
      grid.getStore().reload();
    
  

【问题讨论】:

这能回答你的问题吗? How to disable action column item for a single row? 【参考方案1】:

最佳做法是直接根据记录值将“禁用”属性绑定到按钮。 首先,将 viewModel:true 设置为网格。


   xtype: 'grid',
   //add this below
   itemConfig:
     viewModel:true
   ,
   //....others props like columns, with,etc....

最后,在您的按钮中添加:

action: 
  iconCls: 'x-icon-cross-on',
  //add this
  bind:
        disabled:"record.IS_USED"  //the logic is placed here
  ,
  //.....other props....

您还可以使用此技巧绑定任何其他可绑定属性,例如隐藏、文本等。

希望对你有帮助。

【讨论】:

以上是关于如何在 Extjs 网格中禁用删除图标的主要内容,如果未能解决你的问题,请参考以下文章

如何禁用 ExtJS 网格中的控件?

如何在网格中显示菜单 - ExtJS 5?

如何在每个组 ExtJS 4 中过滤分组网格

如何在网格面板中删除或添加列

如何从ExtJs网格中删除列?

如何根据复选框状态extJs 6禁用网格上的单元格