是否可以将extJS网格面板中的某些列配置为不可编辑?

时间:2011-11-06 13:17:04

标签: extjs

我看到的所有解决方案都需要根据列索引或名称进行过滤的事件处理程序。我不敢相信在网格配置中没有办法做到这一点?

更新:我正在使用extJs 4.0而我正在创建一个Ext.grid.Panel

3 个答案:

答案 0 :(得分:4)

实际上,列是不可编辑的默认值。当您设置editor config。

时,它就变得可编辑

这是来自docs的Ext.grid.plugin.CellEditing:

  

如果没有为特定列指定编辑器,则该单元格将不可编辑,并且在通过鼠标或键盘激活时将跳过该单元格。

答案 1 :(得分:0)

我将回答你的问题(“是 - 它可能配置 - 某些列 - 在 - extjs-grid-panel-to-un-editable”中)字面意思并忽略你的结束评论“你不能相信在网格配置中没有办法做到这一点”。

是的,可能。创建一个扩展GridPanel的xtype,然后让这个xtype实现beforecellselect事件来寻找一个自定义配置选项(例如'uneditable'),它应该是一个数组,然后如果列索引或名称匹配则返回false。

答案 2 :(得分:0)

是的,可以肯定地使某些列不可编辑 这样下去

  1. 获取网格的单元格编辑插件并绑定beforeedit事件

    var plugin = grid.getPlugin('your_cell_editing_plugin_name');
     if(!Ext.isEmpty(plugin)) {
         plugin.on('beforeedit',this.gridBeforeEdit,this);
     }
    
  2. 在调用beforeedit时该怎么做

    gridBeforeEdit: function(editor, e, eOpts ) {
        var me          = this,
            editedField = e.field;
        if(editedField == "your_need_to_be_uneditable_fld"){ 
              return false;
         }
     },