2

このリンクのサンプルコードのサンプルコードを利用しました

そして、追加および編集時に動的に構築された選択ドロップダウンを表示するグリッドを取得しました。ただし、グリッドにデータを表示しているだけの場合は、関連するデータではなくドロップダウン インデックスが表示されます。インデックス自体ではなく、インデックスに関連付けられたデータをグリッドに表示する方法はありますか。

たとえば、選択したデータは「0:Hello;1:World」のようになります。編集/追加ウィンドウのドロップダウンには、Hello と World が表示され、それらの正しいインデックスが表示されます。セルの値が 1 の場合、グリッド自体に World が表示されると予想されますが、代わりに 1 が表示されています。

ここに私のグリッドからの行自体があります:

{ name: 'picklist', index: 'picklist', width: 80, sortable: true, editable: true,
  edittype: "select", formatter: "select", editrules: { required: true} },

次のように、loadComplete イベントに動的データ コンテンツを入力しています。

$('#mygrid').setColProp('picklist', { editoptions: { value: picklistdata} });

picklist データは、「0:Hello;1:World」タイプの値のペアの文字列です。

誰でも助けてください。私はJQGridsにかなり慣れていないので、例も含めてください.

4

2 に答える 2

1

あなたがすでに問題を解決していることは知っていますが、私のプロジェクトで同じ問題に直面したので、解決策を提供したいと思います。

まず、select 列 (この場合は「username」列) のカスタム フォーマッタを宣言します。

$.extend($.fn.fmatter, {
    selectuser: function(cellvalue, options, rowdata) {
        var userdata;
        $.ajax({
            url:'dropdowns/json/user',
            async:false,
            dataType:'json',
            cache:true,
            success: function(data) {
                userdata = data;
            }
        });
        return typeof cellvalue != 'undefined' ? userdata[cellvalue] : cellvalue ;
    }
});

このフォーマッタは、この場合、id とユーザーのマッピングをロードし、特定のセル値のユーザー名を返します。次に、formatter:'selectuser'オプションを列のに設定するcolModelと、機能します。

もちろん、これはグリッドに表示される行ごとに 1 つの json リクエストを行います。次のように、json 応答のヘッダーに10 秒のキャッシュを設定することで、この問題を解決しました。

private function set_caching($seconds_to_cache = 10) {
    $ts = gmdate("D, d M Y H:i:s", time() + $seconds_to_cache) . " GMT";
    header("Expires: $ts");
    header("Pragma: cache");
    header("Cache-Control: max-age=$seconds_to_cache");
}

このソリューションが完璧ではないことはわかっていますが、私のアプリケーションには十分でした。キャッシュ ヒットはブラウザによって即座に処理され、グリッドはスムーズに流れます。最終的には、ビルトインselectフォーマッタが json データで動作するように修正されることを願っています。

于 2012-02-22T20:26:50.100 に答える
0

要素の jqGrid ID を保存しselect、対応するテキストを表示したい場合formatter:'select'は、colModel( http://www.trirand.com/jqgridwiki/doku.php?id=wiki:predefined_formatter#formatter_type_selectを参照) を一緒に使用する必要があります。 edittype: "select"。_

stype: 'select'データ検索をサポートする予定がある場合は、の使用法も興味深いものになる可能性があります。

于 2010-07-26T13:06:36.227 に答える