2

私はjqGridを使用しており、隣接モデルに関していくつかの有用な質問回答があり、並べ替えを除いて、必要なものすべてを接続して機能させています。

問題は、上記の回答リンクに実際に再現されています。誰かが修正が必要なものを見ることができますか?オレグはこれの専門家のようです!

この質問のオプションを試しましたが、現在のバージョン(4.1.2)に新しいバグがあると思いますか?私が間違っていることを証明してください。

http://trirand.com/blog/jqgrid/jqgrid.htmlの例も参照してください>3.4の新機能>ツリーグリッド隣接モデルは機能しますが、この例では、この質問の最初に参照された回答loaded:trueで説明されているプロパティを使用していません

4

2 に答える 2

7

あなたが正しいです。それは私の以前の回答からのデータの小さなバグでした

デバッグを行った結果、エラーは非常に単純であることがわかりました。データでは、の代わりにparent: "null"またはを使用する必要があります。parent: nullparent: ""

sorttypeさらに、テキスト以外のデータで正しく並べ替えるには、グリッドでパラメータを定義する必要があります。

変更されたデモサポートをどのように確認できるか、ローカルソートが正しく行われるようになりました。

ここに画像の説明を入力してください

最初に選択した列でルート要素が並べ替えられ、次にそのすべての子が再帰的に並べ替えられます。

検索エンジンで新しいコードを簡単に見つけられるように、以下のデモのコードを含めます。

var mydata = [
        {id: "1", name: "Cash",        num: "100", debit: "400.00",  credit: "250.00",  balance: "150.00",   enbl: "1", level: "0", parent: "null", isLeaf: false, expanded: false, loaded: true},
        {id: "2", name: "Cash 1",      num: "1",   debit: "300.00",  credit: "200.00",  balance: "100.00",   enbl: "0", level: "1", parent: "1",    isLeaf: false, expanded: false, loaded: true},
        {id: "3", name: "Sub Cash 1",  num: "1",   debit: "300.00",  credit: "200.00",  balance: "100.00",   enbl: "1", level: "2", parent: "2",    isLeaf: true,  expanded: false, loaded: true},
        {id: "4", name: "Cash 2",      num: "2",   debit: "100.00",  credit: "50.00",   balance: "50.00",    enbl: "0", level: "1", parent: "1",    isLeaf: true,  expanded: false, loaded: true},
        {id: "5", name: "Bank\'s",     num: "200", debit: "1500.00", credit: "1000.00", balance: "500.00",   enbl: "1", level: "0", parent: "null", isLeaf: false, expanded: true,  loaded: true},
        {id: "6", name: "Bank 1",      num: "1",   debit: "500.00",  credit: "0.00",    balance: "500.00",   enbl: "0", level: "1", parent: "5",    isLeaf: true,  expanded: false, loaded: true},
        {id: "7", name: "Bank 2",      num: "2",   debit: "1000.00", credit: "1000.00", balance: "0.00",     enbl: "1", level: "1", parent: "5",    isLeaf: true,  expanded: false, loaded: true},
        {id: "8", name: "Fixed asset", num: "300", debit: "0.00",    credit: "1000.00", balance: "-1000.00", enbl: "0", level: "0", parent: "null", isLeaf: true,  expanded: false, loaded: true}
    ],
    grid = $("#treegrid");

$.jgrid.formatter.integer.thousandsSeparator=',';
$.jgrid.formatter.number.thousandsSeparator=',';
$.jgrid.formatter.currency.thousandsSeparator=',';
grid.jqGrid({
    datatype: "jsonstring",
    datastr: mydata,
    colNames: [/*"Id", */"Account", "Acc Num", "Debit", "Credit", "Balance", "Enabled"],
    colModel: [
        //{name: 'id', index: 'id', width: 1, hidden: true, key: true},
        {name: 'name', index: 'name', width: 180},
        {name: 'num', index: 'acc_num', width: 80, formatter: 'integer', sorttype: 'int', align: 'center'},
        {name: 'debit', index: 'debit', width: 80, formatter: 'number', sorttype: 'number', align: 'right'},
        {name: 'credit', index: 'credit', width: 80, formatter: 'number', sorttype: 'number', align: 'right'},
        {name: 'balance', index: 'balance', width: 80, formatter: 'number', sorttype: 'number', align: 'right'},
        {name: 'enbl', index: 'enbl', width: 60, align: 'center',
            formatter: 'checkbox', editoptions: {value: '1:0'},
            formatoptions: {disabled: false}}
    ],
    height: 'auto',
    gridview: true,
    rowNum: 10000,
    sortname: 'id',
    treeGrid: true,
    treeGridModel: 'adjacency',
    treedatatype: "local",
    ExpandColumn: 'name',
    caption: "Demonstrate how to use Tree Grid for the Adjacency Set Model",
    jsonReader: {
        repeatitems: false,
        root: function (obj) { return obj; },
        page: function () { return 1; },
        total: function () { return 1; },
        records: function (obj) { return obj.length; }
    }
});
于 2011-09-07T10:52:05.977 に答える
1

並べ替えとは、適切なノードに分類されるようにツリーオプションを自動並べ替えること、または他の行で並べ替えることができることを意味します(2番目の行は、ツリーがデータを整理するため、実際には意味がありません。並べ替えがどのように意味があるのか​​わかりません。)

これがローカル隣接ツリーを持つjsFiddleです-これはあなたの問題のより良い説明ですか?たとえば、以下のデータでは、id=4または5はid=1に属している必要がありますが、代わりに3の下に表示されます。

ここで、データは次のとおりです。

var mydata = [
    {id: "1", label:"No 1", number:"02200220", status:"OPEN", level:"0", parent: "", isLeaf: false, expanded:true, loaded:true},
    {id: "2", label:"No 2", number:"77733337", status:"ENTERED", level:"0", parent: "", isLeaf: false, expanded:true, loaded:true},
    {id: "6", label:"No 2a", number:"12345123", status:"WIRED", level:"1", parent: "2", isLeaf: true, expanded:false, loaded:true},
    {id: "3", label:"No 3", number:"02200111", status:"OPEN", level:"0", parent: "", isLeaf: false},
    {id: "4", label:"No 1a", number:"02200221", status:"OPEN", level:"1", parent: "1", isLeaf: true, expanded:false, loaded:true},
    {id: "5", label:"No 1b", number:"02242320", status:"CLOSED", level:"1", parent: "1", isLeaf: true, expanded:false, loaded:true}
];
于 2011-09-07T09:49:37.550 に答える