2012-03-23 5 views
1

Я использую ExtJs 3.4, и у меня есть TreeGrid (Ext.ux.tree.TreeGrid) с моделью столбца.Extjs 3.4 Дерево по умолчанию сортировать по указанному столбцу

Сортировка очень хорошо работает с данными, полученными TreeGridLoader, когда вы нажимаете на заголовок каждого столбца, но я хочу sort by a default specified column. Есть ли способ достичь этого? Я хочу указать, что, как я уже сказал, у меня нет магазина, вместо этого у меня определен TreeGridLoader.

UPDATE

Благодаря wes лучший (и вообще) решение моей проблемы было бы:

// simulate click on order number and order by this column 
var treeGrid = Ext.getCmp('siteStructureGrid'); 
var index = 0; 
for (var i = 0; i<treeGrid.columns.length; i++){ 
    if (treeGrid.columns[i].id == 'orderNumberColumn'){ 
     index = i; 
    } 
} 
var column = treeGrid.columns[index]; 
treeGrid.fireEvent('headerClick', column); 

ответ

2

Один метод может быть вызвать обработчик щелчка по заголовку в. Обычно я на него нахмурился, но он обрабатывает кучу задач, а не вызывает один общедоступный метод сортировки. IMO TreeGrid UX не очень хорошо сфокусирован.

// grab the column and fire the click, since it works for you 
var column = treeGrid.columns[index]; 
treeGrid.fireEvent('headerClick', column); 
+0

Да, это прекрасный способ, и он работает ... он как-то жестко закодирован, но работает (по крайней мере, пока не найду другое решение) ... Спасибо! Также было бы лучше, если бы это было способом получить индекс столбца по id в дереве, но каждый раз, когда я добавляю другой столбец, я должен быть осторожным, чтобы увеличить индекс отсортированного столбца – spauny

+0

. Я думаю, что это печальное следствие 'TreeGrid', простирающийся от' TreePanel', а не 'GridPanel'. Вы не получаете удобство обработки столбцов, например 'getColumnByID'. Отсутствие надлежащей модели с несколькими наследствами, вероятно, было слишком много работы для их добавления к неподдерживаемому расширению. – wes

+0

Да, я видел, что TreeGrid расширяет TreePanel, к сожалению ... Я обновил свой вопрос с помощью наиболее общего решения, используя 'treeGrid.columns [i] .id', чтобы найти индекс моего идентификатора столбца. Благодаря! – spauny