Bagaimana cara melampirkan acara dengan benar untuk menutup dialog untuk pemilih kolom jqGrid?

Saya mengalami masalah dengan benar dalam menggunakan acara dialog tutup untuk plugin/widget pemilih kolom jqGrid. Inilah yang saya miliki - Saya mulai dengan inisialisasi jqGrid dengan pemilih kolom terlampir di akhir, seperti itu

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'); }
});

Kemudian, dalam fungsi loadComplete (di atas) saya menemukan dialog dan melampirkan peringatan ke acara penutupannya, seperti itu.

$('#colButton').click(function(e){
    setTimeout(function(){
        log($( ".ui-dialog" ).length);
        $( ".ui-dialog" ).bind( "dialogclose", function(event, ui) {
          log('close dialog event captured!');
        });
    }, 500);
});

Entah kenapa peringatan itu hanya muncul ketika saya menutup dialog melalui tombol "x" di pojok. Saat saya klik "ok" atau "batal" tidak ada peringatan. Apa yang saya lewatkan?

BTW, alasan saya melakukan ini adalah karena saya perlu memperbarui ukuran tabel (setGridWidth) setelah dialog ditutup untuk menyesuaikan kolom yang ditambahkan/dihapus. Mungkin ada cara yang lebih elegan untuk melakukan itu?


person Ilia Draznin    schedule 09.08.2011    source sumber


Jawaban (1)


Anda dapat menggunakan kode berikut

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");
                         }
                     }
                 }
             );
        }
     });

Lihat demo

person Oleg    schedule 09.08.2011
comment
Bekerja seperti pesona. Terima kasih :) - person Ilia Draznin; 09.08.2011