2

行が切り替えられたときにサブグリッドデータを削除しないようにjqGridを強制する方法はありますか?データグリッドをロードするための現在のプロセスは次のとおりです。

1)メイングリッドを設定し、後で使用できるIDを使用してサブグリッドをプログラムで設定します

2)jsonを介してローカルでメイングリッドにデータをロードします

3)jsonを介してローカルでサブグリッドにデータを追加します

ユーザーが切り替えたときにURLではなくローカルでサブグリッドをロードしているため(非表示にしてから再表示)、グリッドにはデータがなく、サブグリッドに提供された元のデータを表示したい。

これはデータをロードする奇妙な方法のように見えるかもしれませんが、理由があります

私が現在jqGridで行っているのは、1つのWebページに大量の保険情報を表示することです(基本的にはレポートです)。このWebページはすべてのデータを自動的にロードする必要があり、サブグリッド機能を提供する必要がある場合が多くあります。サブグリッドが表示されるように手動でクリックイベントを強制的に発生させることでこれを行う方法を理解しましたが、ユーザーがサブグリッドをクリックすると、サブグリッドが消えて戻ってこないのです。

これについて何か提案があれば、私に知らせてください。

また、すべてのデータを自動的に表示するためのより良い方法があると思われる場合は、それもお知らせください。これまでのところ、jqGridは操作が簡単であることがわかりましたが、フッター行に合計値を追加するなど、ネイティブでは実行できないことを強制的に実行してきました。

よろしくお願いします。

4

1 に答える 1

2

あなたがしたいのは、行が展開されたときにjqGridがサブグリッドデータをリロードしないようにすることです。このためのコントロールノブは、jqGridのsubGridOptionsプロパティにあります。subGridOptionsオブジェクトには、この正確な動作を制御するreloadOnExpandと呼ばれるブールプロパティがあります。

jqGridオブジェクトを初期化するときは、次のように、このプロパティをfalseに設定してください。

jQuery("#gridId").jqGrid({
    // ... other properties ...
    subGrid: true,
    subGridOptions: {
        reloadOnExpand: false // Prevent jqGrid from wiping out the subgrid data.
    },
    subGridRowExpanded: subGridExpandCallback,
    // ... other properties ...

このコードを見つけた唯一の場所は、デモサイトのページでこの動作について言及している「ソースの表示」を実行することでした。この投稿の時点でのデモページはここにあります:http://www.trirand.com/blog/phpjqgrid/examples/hierarchy/subgrid_loadonce/default.php

于 2011-05-26T15:09:30.237 に答える