free-jggrid treeGrid 在 table 底部展开

free-jggrid treeGrid expands at bottom of the table

我想为 eBay 类别使用 treeGrid。

所有类别开始折叠(图片:collapsed categories

点击 Stamps 后,子类别会在 table 的底部展开,而不是在 Stamps 下方(图片:expanded category Stamps)

我的table定义:

$('#list').jqGrid({
cmTemplate:{sortable:false, autoResizable: true},
multiSort: false,
url:'/admin/ebay/kategorien/get_jqgrid',
datatype:'json',
mtype:'POST',
jsonReader:{ repeatitems: false },
colModel:[{name:'id',index:'id',width:1,hidden:true,key:true},
          {name:'name', label:'Name', width:200},
          {name:'site_id', label:'Site', width:60},
          {name:'cat_id', label:'Kat.-ID', width:60},
          {name:'leaf_category', label:'Erlaubt', width:60},
          {name:'in_use', label:'Benutzen', width:64,
           formatter:'checkbox', align:'center', stype:'select',
           editoptions:{value:':Alle;-:-;+:+'}}],
pager:'#pager', 
height:'auto',
autowidth:false,
shrinkToFit:false,
guiStyle: 'bootstrap',
viewrecords:true,
gridview:true,
loadComplete: function () {
$(this).triggerHandler('resize.jqGrid');
},
editurl:'/admin/ebay/kategorien/edit',
iconSet:'fontAwesome',
treeGrid:true,
treeGridModel:'adjacency',
ExpandColumn:'name',
ExpandColClick:'true',
caption:'eBay-Kategorien'
});

数据示例:

{
 "site_id":"0",
 "cat_version":"114",
 "cat_id":"20081",
 "cat_level":"1",
 "name":"Antiques",
 "parent_id":"20081",
 "leaf_category":"0",
 "in_use":"0",
 "id":"20081",
 "level":0,
 "parent":"null",
 "isLeaf":"false",
 "expanded":"false"
},
{
 "site_id":"0",
 "cat_version":"114",
 "cat_id":"260",
 "cat_level":"1",
 "name":"Stamps",
 "parent_id":"260",
 "leaf_category":"0",
 "in_use":"0",
 "id":"260",
 "level":0,
 "parent":"null",
 "isLeaf":"false",
 "expanded":"false"
},
{
 "site_id":"0",
 "cat_version":"114",
 "cat_id":"181423",
 "cat_level":"2",
 "name":"Africa",
 "parent_id":"260",
 "leaf_category":"0",
 "in_use":"0",
 "id":"181423",
 "level":1,
 "parent":"260",
 "isLeaf":"false",
 "expanded":"false"
},

我进行了多次测试和搜索,但找不到解决方案... 我做错了什么,我该如何解决?

JSON 你发的数据和图片不符。您能否更新 JSON 数据或图片。最好准备重现问题的演示(例如,在 jsfiddle 中)。典型错误,对应你的图片输入顺序错误。 jqGrid(和免费的 jqGrid)要求输入节点(从 url 返回)的顺序与扩展项完全对应。了解 jqGrid 以相同的顺序加载和放置 TreeGrid 的节点很重要。然后它隐藏 折叠的节点和所有子节点。

我假设 "Stamps" 节点的子节点是 after "Video Games & Consoles" 而不是在 "Stamps" 之后。您应该验证并修复加载项的顺序。

我建议您另外删除不需要的隐藏 id 列。选项 height:'auto', autowidth:falsegridview:true 在免费的 jqGrid 中是默认的,可以删除。 TreeGrid 通常不需要选项 pager:'#pager',但是 navGrid 需要它,例如,然后您可以将 pager:'#pager' 更改为 pager: true,删除不需要的空 [=17] =] 并跳过 navGridinlineNav 中的 '#pager'。免费的 jqGrid 会自动生成寻呼机 div 并且 navGridinlineNav 也会自动使用寻呼机。