jqGridにいくつかのカスタムツールバーボタンがあります。組み込みの編集ボタンと削除ボタンと同様に、そのうちの1つは選択されている行に依存します。ユーザーが行を選択せずにクリックすると、組み込みの[編集]または[削除]ボタンから表示されるのと同じ警告ダイアログが表示されるようにします。つまり、グリッドが使用する次のようなダイアログを再利用したいと思います。
警告行を選択してください
グリッドにアラートを表示する場所はありますか?
ありがとう、スコット
コードは次のようになると思います
var alertIDs = {themodal: 'alertmod', modalhead: 'alerthd', modalcontent: 'alertcnt'};
$.jgrid.viewModal("#" + alertIDs.themodal,
{gbox: "#gbox_" + $.jgrid.jqID(this.p.id), jqm: true});
$("#jqg_alrt").focus();
ここでthis.p.id
(または$.jgrid.jqID(this.p.id)
)はグリッドのIDに置き換えることができます。アラートが確実に機能するように、より長いコードを使用することをお勧めします
var alertIDs = {themodal:'alertmod',modalhead:'alerthd',modalcontent:'alertcnt'};
if ($("#"+alertIDs.themodal).html() === null) {
$.jgrid.createModal(alertIDs,"<div>"+$.jgrid.nav.alerttext+
"</div><span tabindex='0'><span tabindex='-1' id='jqg_alrt'></span></span>",
{gbox:"#gbox_"+$.jgrid.jqID(this.p.id),jqModal:true,drag:true,resize:true,
caption:$.jgrid.nav.alertcap,
top:100,left:100,width:200,height: 'auto',closeOnEscape:true,
zIndex: null},"","",true);
}
$.jgrid.viewModal("#"+alertIDs.themodal,
{gbox:"#gbox_"+$.jgrid.jqID(this.p.id),jqm:true});
$("#jqg_alrt").focus();
デモはコードを示しています。メッセージを表示します
ボタンをクリックするたびに"Click me!"
。
更新: 回答には、無料のjqGridで上記のダイアログを使用する方法に関する情報が含まれています。多くのオプションについて説明しています。最も単純なバージョンには、単純な呼び出しが1つだけ含まれていますthis.modalAlert();
。これは、無料のjqGridが内部的に表示するのと同じアラートダイアログを表示します。
オレグの以下の解決策を試したところ、うまくいきません。
いくつかのデバッグを行ったところ$("#"+alertIDs.themodal).html()
、それは私にとって「未定義」であることがわかりました。そのため、Olegによって提案されたifケースは正しく機能していませんでした。
私はこれを変更しました:
if ($("#"+alertIDs.themodal).html() === null) {
これに:
if ($("#"+alertIDs.themodal).html() === null || $("#"+alertIDs.themodal).html() === undefined) {
現在は正常に動作しています。
$.jgrid.info_dialog.call(this,
"Warning", // dialog title
"Please, select row!" // text inside of dialog
);
それは私にとってうまくいきました!