5

jqGridにいくつかのカスタムツールバーボタンがあります。組み込みの編集ボタンと削除ボタンと同様に、そのうちの1つは選択されている行に依存します。ユーザーが行を選択せず​​にクリックすると、組み込みの[編集]または[削除]ボタンから表示されるのと同じ警告ダイアログが表示されるようにします。つまり、グリッドが使用する次のようなダイアログを再利用したいと思います。

警告行を選択してください

グリッドにアラートを表示する場所はありますか?

ありがとう、スコット

4

3 に答える 3

8

コードは次のようになると思います

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が内部的に表示するのと同じアラートダイアログを表示します。

于 2012-08-14T21:02:05.970 に答える
2

オレグの以下の解決策を試したところ、うまくいきません。
いくつかのデバッグを行ったところ$("#"+alertIDs.themodal).html()、それは私にとって「未定義」であることがわかりました。そのため、Olegによって提案されたifケースは正しく機能していませんでした。

私はこれを変更しました:

if ($("#"+alertIDs.themodal).html() === null) {

これに:

if ($("#"+alertIDs.themodal).html() === null || $("#"+alertIDs.themodal).html() === undefined) {

現在は正常に動作しています。

于 2014-05-26T12:00:15.277 に答える
-1
$.jgrid.info_dialog.call(this,
    "Warning",              // dialog title
    "Please, select row!"  // text inside of dialog
);

それは私にとってうまくいきました!

于 2016-06-28T11:58:41.390 に答える