2015-06-01 3 views
1

У меня есть дерево панель:ExtJs дерево панель изменение отключить выбор

 xtype : 'treepanel', 
     itemId : 'field-tree-command-metas', 
     region : 'center', 
     hideHeaders : true, 
     rootVisible : false, 
     emptyText : 'No Commands Available', 
     deferEmptyText : true, 
     bufferedRenderer : false, 
     reference : 'treeCommandMetas', 
     bind : { 
      selection : '{bindSelection}' 
     }, 
     listeners : { 
      boxready : function() { 
       var treeView = this.getView(); 
       treeView.refresh(); 
      } 
     }, 
     columns : [ { 
      xtype : 'noicontreecolumn', 
      dataIndex : 'name', 
      flex : 1, 
      nodeIconsProvider : function(record) { 
       if (record.isLeaf()) { 
        return [ '<i class="' + Glyphs.getIconClass('square-o', 'size-14px') + '"></i>' ]; 
       } 

       if (record.isExpanded()) { 
        return [ '<i class="' + Glyphs.getIconClass('folder-open-o', 'fa-lg') + '"></i>' ]; 
       } 

       return [ '<i class="' + Glyphs.getIconClass('folder-o', 'fa-lg') + '"></i>' ]; 
      } 
     } ], 
     displayField : 'name', 
     store : 'Plugin.scheduler.store.CommandMetaStore' 

На форме, загруженной в этом дереве выбрана запись. Можно ли отключить другие варианты? Я имею в виду, что если что-то в дереве выбрано, пользователь не может изменить выбор. Пробовал «disableSelection: true», но отключает все выборы, я бы хотел, чтобы выделение было сделано по умолчанию видимым.

ответ

1

Вы можете использовать setLocked отключить другие выборы:

treepanel.getSelectionModel().setLocked(true); 

Если вы хотите, чтобы включить выбор вы можете просто использовать обратное:

treepanel.getSelectionModel().setLocked(false); 

У меня есть пример здесь с помощью ExtJS 4.2.1 : https://fiddle.sencha.com/#fiddle/nqf

0

Внесите прослушиватель beforeselect и верните его, чтобы отключить выбор щелчка мыши:

listeners:{ 
    boxready : your boxready function, 
    beforeselect :function(){ 
     return false; 
    } 
} 

Тогда всякий раз, когда вы нажимаете любую строку дерева, выбор не изменяется.

вот апи объяснение:

beforeselect (это, запись, индекс, eOpts)
Уволен до выбора записи. Если какой-либо прослушиватель возвращает false, выбор отменяется. Обратитесь к api doc here.

+0

Пробовал, отключает все выборы, не зависит от того, как они были выбраны (EXTJS 5.1) – Edgar

Смежные вопросы