jqgrid treegrid设置为json数据按需加载子项(在扩展时)

时间:2012-03-15 07:48:18

标签: jquery jqgrid load treegrid

我想在扩展时加载子节点。在文档中,他们提到当点击扩展图标时,具有level,isexpanded等值的请求将被发送到服务器。但对我来说,当我扩展任何节点时,没有url被发送到服务器。我必须做些什么设置才能让它发挥作用。

我现有的设置如下: -

jQuery("#tree").jqGrid({
url:'getTasks.htm',
datatype: "json",
mtype:'GET',
colNames: ["id", "no.", "name"],
colModel: [
    {name:'id',width: 30, editable:false, align:"right",sortable:false, hidden: true, key: true},
    {name:'no',width:80, editable:false, align:"left", sortable:true, sorttype:"int"},
    {name:'name', width:150, editable:true, sortable:true, sorttype:"text"}

],

treeGridModel:'adjacency',
treeGrid: true,
gridview:true,
treedatatype: 'json',
cellEdit: true,
ExpandColumn:'name',
cellsubmit : 'clientArray',

jsonReader : {
    root:"listTasks",
    cell:"",
    id: "id",
    repeatitems:false

}

示例JSON数据是: -

[Object { id="16731", no="1", name="name1", level="0", parent="null", isLeaf="false", expanded="false", loaded="true", icon="ui-icon-triangle-1-s"}, Object { id="16737", no="2", name="name2", level="0", parent="null", isLeaf="false", expanded="false", loaded="true", icon="ui-icon-triangle-1-s"}, Object { id="18846", no="3", name="name3", level="0", parent="null", isLeaf="false", expanded="false", loaded="true", icon="ui-icon-triangle-1-s"}, Object { id="-1", no="(new)", parent="null",level="0", isLeaf="false", expanded="false", loaded="true", icon="ui-icon-triangle-1-s"}]

1 个答案:

答案 0 :(得分:1)

您可以在TreeGrid的文档中找到(请参阅here),树参数:nodeidparentidn_level将在扩展时发送到服务器treeGridModel:'adjacency'的情况下的节点。不应发送“url”。

另外重要的是哪个值具有loaded隐藏列的值。如果在第一次加载时填充TreeGrid中的所有数据,则应将true放在列中,不会在扩展的节点上发送对服务器的请求。