Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery ui 如何正确地将事件附加到“事件”;“关闭对话框”;至于;“列选择器”;jqGrid的应用?_Jquery Ui_Jqgrid_Jquery Ui Dialog_Jquery - Fatal编程技术网

Jquery ui 如何正确地将事件附加到“事件”;“关闭对话框”;至于;“列选择器”;jqGrid的应用?

Jquery ui 如何正确地将事件附加到“事件”;“关闭对话框”;至于;“列选择器”;jqGrid的应用?,jquery-ui,jqgrid,jquery-ui-dialog,jquery,Jquery Ui,Jqgrid,Jquery Ui Dialog,Jquery,我在正确使用jqGrid的columns chooser插件/小部件的close对话框事件时遇到了一些问题。这里是我所拥有的——我从jqGrid初始化开始,并在末尾附加列选择器,如下所示 ticketsTable = tableWrap.jqGrid({ url: ... , datatype: ... , ... loadComplete: function(d) { ... } }) .navGrid('#ticketsList_foo

我在正确使用jqGrid的columns chooser插件/小部件的close对话框事件时遇到了一些问题。这里是我所拥有的——我从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),以调整添加/删除的列。也许有一种更优雅的方法可以做到这一点?

您可以使用以下代码

tableWrap.jqGrid (
    'navButtonAdd',
    '#pager',
     {
         caption: "", buttonicon: "ui-icon-calculator", title: "choose columns",
         onClickButton: function() {
             tableWrap.jqGrid('columnChooser', {
                     done: function(perm) {
                         if (perm) {
                             tableWrap.jqGrid("remapColumns", perm, true);
                             alert("The column chooser closed with 'OK' button");
                         } else {
                             alert("The column chooser closed with 'Cancel' button");
                         }
                     }
                 }
             );
        }
     });

请参见

,它的作用就像一个符咒。谢谢:)