0

私は jqgrid を使用しており、その中に 1 つのサブグリッドを追加しました。これは次のようになります。

ここに画像の説明を入力

ご覧のとおり、
列が 11 と 13 の行がメイン グリッド行です。

そして、すべての行には関心のあるサブグリッドがあり、レコードの追加要素は、サブグリッドの追加ポップアップを表示します

サブグリッドのコードは次のようになります。

subGridRowExpanded: function(subgrid_id, row_id) {
            var subgrid_table_id, pager_id;
            subgrid_table_id = subgrid_id+"_t";
            pager_id = "p_"+subgrid_table_id;
            $("#"+subgrid_id).html("<table id='"+subgrid_table_id+"' class='scroll'></table><div id='"+pager_id+"' class='scroll'></div>");
            jQuery("#"+subgrid_table_id).jqGrid({
                url:"shops?q=2&ShopID="+row_id,
                datatype: "xml",
                colNames: ['Interest'],
                colModel: [
                    //{name:"Id",index:"ShopID",width:80,editable:false,editoptions:{readonly:false,size:40}}, //Shop ID not required
                    {name:"id",index:"id",editable:true,edittype:"select",editoptions:{dataUrl:'shops?q=3&ShopID='+row_id},editrules:{required:true}}
                ],
                rowNum:10,
                pager: pager_id,
                width: '100%',
                height: '100%',
                scrollOffset: 0,
                sortname: 'num',
                sortorder: "asc",
                height: '100%',
                editurl:'shops?q=5&ShopID='+row_id
            });
            jQuery("#"+subgrid_table_id).jqGrid('navGrid',"#"+pager_id,{edit:false,add:true,del:true})
        },
        subGridRowColapsed: function(subgrid_id, row_id) {
            // this function is called before removing the data
            //var subgrid_table_id;
            //subgrid_table_id = subgrid_id+"_t";
            //jQuery("#"+subgrid_table_id).remove();
        }

ポップアップから値を追加すると、メイン グリッドの各行の [興味] タブに移動し、その追加された値はポップアップから削除する必要があります。

現在、値は正常に追加されますが、メイン フォームを更新するまでポップアップに表示されたままになります。

送信後に追加ポップアップをリロードする方法はありますか?

お時間をいただき、ありがとうございます

4

2 に答える 2

1

の応答にHTTP ヘッダー"Cache-Control: private, max-age=0"(ここここdataUrlを参照) を設定すると、問題が解決する可能性があります。ASP.NET を使用している場合は、 answerを読むことをお勧めします。

または、オプションを使用できます

ajaxSelectOptions: { cache: false }

答えを見てください)。

上記のすべてが役に立たない場合は、ajaxSelectOptions.data as 関数ShopIDを使用して、 のパラメーターの異なる値を確実に送信できますdataUrl。詳細については、回答を参照してください。

更新:recreateForm: trueフォームの追加と編集のオプションを使用することをお勧めします。使用例はこちらをご覧ください。

于 2012-10-11T15:02:15.490 に答える
0

見つけた解決策、

実際には、 afterSubmit イベントを使用できます。

解決策は、これらの 2 つのリンクにあります。

jqgridで送信した後にフォームを閉じてグリッドをリロードする方法は?

http://www.trirand.com/blog/?page_id=393/help/how-to-reload-edit-form-after-submit/

ありがとう、もっと説明が必要な人はコメントしてください

于 2012-10-11T15:03:07.030 に答える