2011-08-09 7 views
3

jqGridの列選択プラグイン/ウィジェットのクローズダイアログイベントを正しく使用する上で問題があります。ここで私が持っているものだ - 私は、ダイアログを見つけて、そのcloseイベントにアラートを添付(上記)loadComplete機能では、そのようにjqGridの "columns chooser"の "close dialog"にイベントを正しく添付する方法は?

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

のように、末端に結合列の選択とjqGridの初期化で始まります、 そのようです。私は隅にある「×」ボタンでダイアログを閉じたときにアラートが唯一立ち上がる何らかの理由で

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

。 「OK」または「キャンセル」をクリックするとアラートは表示されません。私は何が欠けていますか?

私がこれをやっているのは、追加/削除された列を調整するためにダイアログを閉じた後にテーブルのサイズ(setGridWidth)を更新する必要があるからです。たぶんもっとエレガントな方法がありますか?

答えて

3

あなたは魔法のようにthe demo

+0

作品を参照してください。次のコード

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

を使用することができます。ありがとうございました:) – ilia

+0

@ilia:ようこそ! – Oleg

関連する問題