2014-10-17 5 views
0

У меня есть функция, где я вручную устанавливаю ширину столбца jqgrid. Если после этого я хочу использовать дескриптор изменения размера, он добавляет или вычитает относительный размер оригинала. Поэтому я не вижу, чтобы моя новая ширина принималась за базу. Я попытался поставить width и withOrg в colModel без успеха.Изменение размера jqgrid после изменения ширины вручную

У меня есть обработчик клика, в котором я изменяю размер столбца до определенной ширины при щелчке. i установить ширину th tuss JS. После этого я хотел бы иметь возможность использовать элемент .ui-jqgrid-resize для изменения размера столбца.

короткая версия моего кода, скажет th является 200px широка:

$('th').dblclick(function(){ 
    $(this).width('100px'); 
}); 

после того, как пользователь двойного клика, и th пошел меньше по размеру 100px, пользователь использует маркер изменения размера, чтобы расширить th10px. Ожидаемый результат: th110px широкий, но th прыгает на 210px широкий. Он добавляет 10px, который пользователь хотел добавить в исходное состояние, а не в состояние, которое я установил с помощью doubleclick.

+0

Что вы подразумеваете под «i вручную устанавливаете ширину столбца jqgrid» и «после этого хотите использовать дескриптор изменения размера»? Что вы делаете точно и в каком контексте? Как вы «вручную устанавливаете ширину» столбца? Вы пишете код своего callback 'resizeStop' и вам нужна дополнительная информация? – Oleg

+0

Помогает ли обновить вопрос? –

+0

Извините, но я до сих пор не понимаю ваши ** цели **. Вы написали «Я хотел бы иметь возможность использовать элемент .ui-jqgrid-resize». Это не может быть вашей целью. Вы можете в любое время «использовать элемент», но что вы хотите реализовать? Почему вы «устанавливаете ширину th»? jqGrid сделал это уже. Что вы хотите * дополнительно * для изменения размера * после того, как пользователь изменил размер столбца? – Oleg

ответ

0

Я бы порекомендовал вам использовать метод setColWidth, из плагина, который я написал ранее (см. the answer), чтобы изменить ширину столбца сетки. Вы можете загрузить текущую версию плагина с github.

Если вы пытаетесь установить ширину столбцов в зависимости от ширины содержимого колонки, то я бы порекомендовал вам взглянуть на the demo созданный для the answer и читать the answer тоже. Я не вижу предлагаемого кода в качестве окончательного решения, но демонстрации показывают мое представление о проблеме и способах реализации функции «autowidth».

+0

с использованием метода 'setColWidth' делает трюк, не могли бы вы объяснить мне почему? Это dragEnd? –

+1

@LaurensKling: Как я уже писал, вам нужно изменить многие внутренние структуры jqGrid для изменения ширины столбца. Если пользователь изменит размер столбца, будут вызываться древовидные методы 'dragStart',' dragMove' и 'dragEnd'. [dragEnd] (https://github.com/tonytomov/jqGrid/blob/v4.6.0/js/grid.base.js#L911-L946) использует некоторые свойства в качестве входных данных (который устанавливает 'dragStart',' dragMove') , Поэтому я просто заполняю те же свойства ввода, а затем вызываю 'dragEnd', который доступен (см. [Здесь] (https://github.com/tonytomov/jqGrid/blob/v4.6.0/js/grid.base.js#L2928)) через 'this.grid'. Это лучший способ, который я нашел. – Oleg

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