2016-01-06 10 views
1

Я застреваю, пытаясь сделать мою деревенскую прокрутку в обоих направлениях. Heres мой код: https://fiddle.sencha.com/#fiddle/13cbExtJS 6 Прокрутка TreePanel не работает

Я мог бы установить scrollable: true в мою обертку, но это не решило бы проблему горизонтальной прокрутки. Кроме того, при таком подходе вы можете также прокручивать поле со списком. Но я хочу, чтобы только древовидная полоса прокручивалась по горизонтали и по вертикали. Как я могу это достичь?

Заранее спасибо

+1

Использует 'style: {overflow: 'auto'}' на дереве, что вы после? –

+0

Ваше предложение позволяет прокручивать в обоих направлениях, да, но это не совсем то, что мне нужно. С вашими решениями панель инструментов в моей панели тоже прокручивается («Я обновил свою скрипку») – xdn

ответ

1

Я не уверен, можем ли мы достичь именно то, что вы хотите. Но давайте попробуем.

Чтобы получить вертикальные полосы прокрутки, вы должны определить высоту на дереве. На данный момент древовидная полоса динамически изменяется динамически до высоты ее содержимого, так как для нее не определена высота. Поскольку даже родительская панель не имеет определенной высоты, значение высоты также не будет работать, но, например, высота: 500 будет. Если требуется, чтобы макет планировался при изменении размера окна браузера, просмотрите макеты vbox или border для родительской панели.

Чтобы получить горизонтальные полосы прокрутки, вы должны знать, как работают столбцы сетки. Вы не определили конфигурацию колонка, что делает TreePanel предположит, что вы хотите один столбец занимает 100% от ширины TreePanel:

if (!me.columns) { 
     if (me.initialConfig.hideHeaders === undefined) { 
      me.hideHeaders = true; 
     } 
     me.addCls(me.autoWidthCls); 
     me.columns = [{ // define columns configuration with a single column 
      xtype : 'treecolumn', // the column should be a treecolumn 
      text  : 'Name', 
      flex  : 1, // and take up 100% of the width of the panel 
      dataIndex: me.displayField // and use the displayField as 
     }]; 
    } 

Вы не можете сделать столбцы занимают ширину, необходимые их содержание автоматически , Но вы можете, например, слушайте nodeexpand and nodecollapse событий и звоните column.autoSize().

+0

Эй, спасибо за ваш ответ! Я обновил свою скрипку с вашим предложением. Мне нужно немного улучшить его, но этого я и хотел. Еще раз спасибо! – xdn