2

jqgrid デモ ページの例からグループ化機能を実装できました。しかし、デフォルトでグループ化を有効にしたくありませんが、選択リストの変更時にグループ化機能を有効にしたいと考えています。いくつかのオプションを試しましたが、どれも成功しませんでしたか? 誰かがここで私を助けてくれませんか、何かが足りないのかもしれません。これが私のコードです...

$("#dynamicGrouping").change(function() { 
    var value = $(this).val(); 
    if(value) { 
        if(value == '') { 
            $('#grid').jqGrid('groupingRemove', true); 
        } else { 
            $('#grid').jqGrid('setGridParam', { grouping:true });
            $('#grid').jqGrid('groupingGroupBy', value);
            $('#grid').trigger('reloadGrid');
        } 
    }
});

私のグリッド定義:

jQuery(function() {
    $('#grid').jqGrid({
            .....
            .....
        grouping: false,
        groupingView : { 
                groupField : ['field_name'], 
            groupColumnShow : [true], 
            groupText : ['<b>{0} - {1} Item(s)</b>'], 
            groupCollapse : false, 
            groupOrder: ['asc'], 
            groupDataSorted : true 
            },
        .......
        .......
    });
});
4

1 に答える 1

12

コードに何らかのエラーがあったとします。あなたが投稿したコードは正しいようですが、これを自動的に行うため、追加で設定grouping:trueしてトリガーする必要はありません。reloadGridgroupingGroupBy

デモでは、グループ化を動的に設定または削除する方法を示します。

ここに画像の説明を入力

だからあなたが使うことができます

$("#dynamicGrouping").change(function () {
    var groupingName = $(this).val();
    if (groupingName) {
        $('#grid').jqGrid('groupingGroupBy', groupingName);
    } else {
        $('#grid').jqGrid('groupingRemove');
    }
});

またはもう少し高度なバージョン

$("#dynamicGrouping").change(function () {
    var groupingName = $(this).val();
    if (groupingName) {
        $('#grid').jqGrid('groupingGroupBy', groupingName, {
            groupOrder : ['desc'],
            groupColumnShow: [false],
            groupCollapse: true
        });
    } else {
        $('#grid').jqGrid('groupingRemove');
    }
});

更新: すべてが JSON データでも機能します:デモを参照してください。

更新 2 : コードをもう一度調べたところ、グリッドの初期化時に にgridview設定されることがわかりました:を参照してください。最初にを持っておらず使用していない場合は 、 だけを変更することはできません。グループ化の制限から他のパラメータも正しく設定する必要があります。true gridview: truegrouping: falsegrouping: true

したがって、制限からのルールを自分で保持する必要があります。

scroll: false,
rownumbers: false,
treeGrid: false,
gridview: true,

ちなみに、パフォーマンスが向上するため、常に使用することをお勧めします。gridview: true

于 2012-11-02T12:10:22.310 に答える