0

私はjqgridに取り組んでいます。

jqgridの列の1つにボタンがあり、ボタンをクリックすると更新が行われるという要件があります。

今私が欲しいのは、そのボタンがクリックされ、更新操作(ajax呼び出し)が行われるまで、jqgrid全体を無効化/フリーズしたいということです。

jqgridを無効にしたいのですが、ユーザーはjqgridで他のボタン、ポケットベルボックス、ポケットベルボタン、並べ替えボタンなどを選択できないようにする必要があります。

私はここにjsfiddleを用意しました: http : //jsfiddle.net/yrshaikh/9WhdS/この質問に答えるときに役立つと思われる場合は、それを使用してください。

jQuery("#list47").jqGrid({
    data: mydata,
    datatype: "local",
    height: 150,
    rowNum: 999999,
    scroll: true,
    colNames: ['Inv No','Notes'],
    colModel: [
        {
        name: 'id',
        index: 'id',
        width: 60,
        sorttype: "int"},
    {
        name: 'note',
        formatter: function(){
            return "<input type='button' value='update something' class='btn'/>";
        }}
    ],
    pager: "#plist47",
    viewrecords: true,
    multiselect: true,
    caption: "how to freeze out jqgrid ?",
    beforeSelectRow: function(rowid, e)
    {
        jQuery("#list47").jqGrid('resetSelection');
        return(true);
    }

});

そうするための組み込み関数はありますか?これについて私を助けてください。

4

2 に答える 2

1

jqGridには、達成したいことを実行するためのネイティブ関数があるとは思いません。BlockUiプラグインを使用します:http://jquery.malsup.com/block

デモはこちら

$(".btn").click(function(){
    $("#list47").closest('.ui-jqgrid').block({ 
                message: '<h1>Processing</h1>', 
                css: { border: '3px solid #a00' } 
            });
});

次に、ajaxリクエストが完了したら、このコードを呼び出します。

 $("#list47").closest('.ui-jqgrid').unblock();
于 2013-01-04T15:28:05.830 に答える
0

を使用してみてください$("#lui_" + myGridId).show()

グリッドはこのオーバーレイを内部的に作成し、ローダーメッセージの一部として使用します。表示または非表示にするだけで、グリッドが無効/有効になります。

見た目はあまり良くありませんが、カスタマイズすることができます。

于 2014-03-04T11:08:37.697 に答える