jqGrid(v4.1.2)treegrid的排序不适用于Ajacency Model [英] Sorting of jqGrid (v4.1.2) treegrid not working with Ajacency Model

查看:145
本文介绍了jqGrid(v4.1.2)treegrid的排序不适用于Ajacency Model的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我一直在使用jqGrid,并且有一些有用的问题答案我已经得到了我需要连接和工作的所有内容,除了排序。

I have been working with jqGrid and there are some useful questions and answers regarding the Adjacency model and I have got everything I need hooked up and working except sorting.

问题实际上是在上面的答案链接中复制的。谁能看到需要修理的东西? Oleg似乎是这方面的专家!

The problem is actually replicated in the answer link above. Can anyone see what needs fixing? Oleg appears to be the expert on this!

我已经尝试过这个问题,但我认为当前版本(4.1.2)可能有新的错误?请证明我错了。

I have tried the options in this question but I think the current version (4.1.2) may have a new bug? Please prove me wrong.

我也在 http上看到了示例://trirand.com/blog/jqgrid/jqgrid.html > 3.4中的新功能>树网格邻接模型有效,但该示例未使用已加载:true 此问题的首次引用的答案中描述的属性

I also see the example on http://trirand.com/blog/jqgrid/jqgrid.html > New in 3.4 > Tree grid Adjacency Model works but that example is not using the loaded:true property as described in the first referenced answer of this question

推荐答案

你是对的。这是我之前回答的数据中的小错误

You are right. It was small bug in the data from my previous answers about

经过一些调试我发现错误非常简单:一个应该使用 parent :null parent:null 在数据中而不是 parent:

After some debugging I find out that the error is very simple: one should use parent: "null" or parent: null in the data instead of parent: "".

此外,您必须在网格中定义 sorttype 参数,以便正确排序其他任何数据作为文本。

Additionally you have to define sorttype parameters in the grid to have sorting correctly with any data other as texts.

如何查看修改后的演示现在支持正确的本地排序:

How you can see the modified demo support now the local sorting correctly:

首先将按所选列对根元素进行排序,然后递归所有子元素。

First will be sorted root elements by the chosen column and then recursively all its children.

为了便于在搜索引擎中找到新代码,我在下面添加了演示代码:

To make easy to find the new code in the searching engine I include the code of the demo below:

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; }
    }
});

这篇关于jqGrid(v4.1.2)treegrid的排序不适用于Ajacency Model的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆