【问题标题】:jqGrid - TreeGrid alternate sortjqGrid - TreeGrid 交替排序
【发布时间】:2011-11-09 17:00:10
【问题描述】:

我有一个运行良好的树形网格。网格对层次结构中的列进行排序,效果很好。但是,我需要能够“打破”树的层次结构并像非树网格那样进行排序。有没有办法在不加载两个 jqGrid(一个带 treegrid,一个不带 treegrid)的情况下做到这一点?

当我说我想“打破”层次结构时,我基本上是想关闭 treegrid 并将数据加载到普通的非 treegrid 网格中。我可以加载两个网格,但我只想关闭现有网格中的 treegrid。

我正在使用本地 json 数据使用 treegrid:

$('#heatmap').jqGrid({            

        datatype: 'jsonstring',

        datastr: [
{id: "0", initalColumn: "0", 0: "National", 1: "65", 2: "69", 3: "73", 4: "73", 5:     "69", 6: "73", 7: "77", level: "0", parent: "null", isLeaf: false, expanded: true, loaded: true},
{id: "1", initalColumn: "1", 0: "Central", 1: "63", 2: "68", 3: "71", 4: "71", 5: "65", 6: "73", 7: "75", level: "1", parent: "0", isLeaf: false, expanded: true, loaded: true},
{id: "2", initalColumn: "2", 0: "Store 1", 1: "64", 2: "69", 3: "70", 4: "70", 5: "63", 6: "73", 7: "74", level: "2", parent: "1", isLeaf: true, expanded: true, loaded: true},
{id: "3", initalColumn: "3", 0: "Store 2", 1: "60", 2: "65", 3: "76", 4: "73", 5: "68", 6: "74", 7: "77", level: "2", parent: "1", isLeaf: true, expanded: true, loaded: true},
{id: "4", initalColumn: "4", 0: "East", 1: "64", 2: "70", 3: "72", 4: "74", 5: "71", 6: "75", 7: "77", level: "1", parent: "0", isLeaf: false, expanded: true, loaded: true},
{id: "5", initalColumn: "5", 0: "Store 3", 1: "64", 2: "73", 3: "74", 4: "77", 5: "72", 6: "77", 7: "78", level: "2", parent: "4", isLeaf: true, expanded: true, loaded: true},
{id: "6", initalColumn: "6", 0: "Store 4", 1: "67", 2: "71", 3: "72", 4: "75", 5: "71", 6: "79", 7: "79", level: "2", parent: "4", isLeaf: true, expanded: true, loaded: true},
{id: "7", initalColumn: "7", 0: "Store 5", 1: "62", 2: "66", 3: "70", 4: "72", 5: "69", 6: "70", 7: "75", level: "2", parent: "4", isLeaf: true, expanded: true, loaded: true},
{id: "8", initalColumn: "8", 0: "West", 1: "66", 2: "69", 3: "75", 4: "73", 5: "70", 6: "73", 7: "77", level: "1", parent: "0", isLeaf: false, expanded: true, loaded: true},
{id: "9", initalColumn: "9", 0: "Store 6", 1: "59", 2: "67", 3: "73", 4: "69", 5: "68", 6: "71", 7: "74", level: "2", parent: "8", isLeaf: true, expanded: true, loaded: true},
{id: "10", initalColumn: "10", 0: "Store 7", 1: "64", 2: "68", 3: "73", 4: "73", 5: "67", 6: "71", 7: "76", level: "2", parent: "8", isLeaf: true, expanded: true, loaded: true},
{id: "11", initalColumn: "11", 0: "Store 8", 1: "71", 2: "69", 3: "78", 4: "75", 5: "72", 6: "74", 7: "79", level: "2", parent: "8", isLeaf: true, expanded: true, loaded: true}]
,
            treeGridModel: 'adjacency',
            treeGrid: true,               
            ExpandColumn: '0',
            ExpandColClick: false,
            gridComplete: function(){ if(typeof GridComplete == 'function'){GridComplete();} },
            beforeSelectRow: function(rowid, e) { return false; },
            onSelectRow: function(rowid){if(typeof GridClick == 'function'){GridClick(rowid);} },
            scroll: false,
            scrollOffset: 18,
            scrollrows:false,
            rownumbers: false,   
            pager:'#dummypager',          
            rowNum: 1000,
            jsonReader: {
                repeatitems: false,
                root: function (obj) { return obj; },
                page: function () { return 1; },
                total: function () { return 1; },
                records: function (obj) { return obj.length; }
            },  
            colNames: ["0","","Col1","Col2","Col3","Col4","Col5","Col6","Col7"],
            colModel: [{ name: "initalcolumn", hidden: true},{ name: "0", sortable: true, title: false, width:250, sorttype: "string"},{ name: "1", sortable: true, title: false,  sorttype: "int", align:"right", formatter: formatter1},{ name: "2", sortable: true, title: false,  sorttype: "int", align:"right", formatter: formatter2},{ name: "3", sortable: true, title: false,  sorttype: "int", align:"right", formatter: formatter3},{ name: "4", sortable: true, title: false,  sorttype: "int", align:"right", formatter: formatter4},{ name: "5", sortable: true, title: false,  sorttype: "int", align:"right", formatter: formatter5},{ name: "6", sortable: true, title: false,  sorttype: "int", align:"right", formatter: formatter6},{ name: "7", sortable: true, title: false,  sorttype: "int", align:"right", formatter: formatter7}],                                    
        gridview: true,
        forceFit: false,            
        shrinkToFint: true,
        height: 'auto',
        hoverrows: false,    
        hidegrid: false,        
        autowidth: true,   
        deselectAfterSort: true,
        headertitles: false,                 
        title: false
        })

【问题讨论】:

  • 您能否更详细地描述您拥有的树形网格?您是否有带有本地数据的 Tree Grid 或从服务器加载数据?您是在隐藏的loaded 列中使用true 立即加载网格,还是在每个扩展节点上从服务器获取数据?您能否更详细地解释一下您如何想象具有“破坏”树的层次结构的网格?它不再是树形网格了吗?
  • @Oleg 我已经编辑了我的问题以更详细地描述我的情况。

标签: sorting jqgrid treegrid


【解决方案1】:

我认为您需要做的是将用于datastr 参数的数组保存在变量中。该变量可用于创建树形网格或“标准”网格。如果您想从 Tree Grid 切换到标准网格,您应该重新创建 GridUnload 方法的网格。在the answer 中,您将找到演示如何使用GridUnload 的演示。

【讨论】:

    猜你喜欢
    • 2019-01-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多