У меня возникли проблемы с правильным использованием события закрытия диалогового окна для плагина / виджета выбора столбцов jqGrid. Вот что у меня есть - я начинаю с инициализации jqGrid с прикрепленным в конце средством выбора столбца, вот так
ticketsTable = tableWrap.jqGrid({
url: ... ,
datatype: ... ,
...
loadComplete: function(d) {
...
}
})
.navGrid('#ticketsList_footer', {edit:false, add:false, del:false, cloneToTop:true})
.navButtonAdd('#ticketsList_toppager', {
caption: "Columns",
title: "Reorder Columns",
id: "colButton",
onClickButton: function(){ ticketsTable.jqGrid('columnChooser'); }
});
Затем в функции loadComplete (см. Выше) я нахожу диалоговое окно и прикрепляю предупреждение к его событию закрытия, вот так.
$('#colButton').click(function(e){
setTimeout(function(){
log($( ".ui-dialog" ).length);
$( ".ui-dialog" ).bind( "dialogclose", function(event, ui) {
log('close dialog event captured!');
});
}, 500);
});
По какой-то причине предупреждение появляется только тогда, когда я закрываю диалоговое окно с помощью кнопки «x» в углу. Когда я нажимаю «ОК» или «Отмена», предупреждения не появляется. Что мне не хватает?
Кстати, причина, по которой я это делаю, заключается в том, что мне нужно обновить размер таблицы (setGridWidth) после закрытия диалогового окна, чтобы настроить добавленные / удаленные столбцы. Может, есть более элегантный способ сделать это?