Javascript-форум (https://javascript.ru/forum/)
-   ExtJS (https://javascript.ru/forum/extjs/)
-   -   Изменяемая ширина колонок PropertyGrid (https://javascript.ru/forum/extjs/22377-izmenyaemaya-shirina-kolonok-propertygrid.html)

Black_Prince 17.10.2011 13:03

Изменяемая ширина колонок PropertyGrid
 
Пример с сайта сенчи:
http://docs.sencha.com/ext-js/4-0/#!.../property.html

Пример других гридов:
http://docs.sencha.com/ext-js/4-0/#!...d-plugins.html

Как видно во втором примере можно изменить ширину колонки по своему желанию (на как в Excel'e :) )
А вот с пропертигридом такая фича не прокатывает - ширина динамически не меняется.

Как сделать что бы менялась?

Пробовал через конфиги грида:
columns - не имеет никакого воздействия на функционал

Пробовал установить хотя бы другую ширину с помощью конфига nameColumnWidth - результат нулевой, ширина колонки как была 115 по дефолту, так и осталась.

Попробовал хотя бы сменить название колонки с помощью nameValue - название не изменилось, но перестали отображаться данные в колонке... это так, лирическое отступление.

Black_Prince 18.10.2011 15:30

В общем решение нашлось с помощью исправления кода самой библиотеки ext (понимаю что так делать нельзя, но это все просто достало).

кому интересно вот решение:
1. в файле ext-all-debug.js выполняем поиск строки: "Ext.grid.plugin.HeaderResizer". Это примерно 80000-ная строка.
2. внутри этого "класса" ищем функцию: "afterHeaderRender".
3. внутри функции находим конструкцию: "disabled: this.disabled".
4. комментируем эту конструкцию (на всякий случай) и вместо этого пишем: "disabled: false".
5. Возможно необходимо будет так же закомментировать тело функции "disable" которая находится ниже:
disable: function() {
/*this.disabled = true;
if (this.tracker) {
this.tracker.disable();
}*/
},

Таким образом конечно у всех гридов появляется возможность менять ширину колонок... это пока что единственный "баг" с которым я столкнулся после такого быдлокодерства.

P.S. Огромное спасибо моему знакомому, который мне все это подсказал.
P.P.S. Кто знает более красивое решение, например через плагины, просьба подсказать как это сделать.


Часовой пояс GMT +3, время: 23:11.