gpt4 book ai didi

javascript - jqGrid treegrid 在提供 xml 数据时忽略展开状态

转载 作者:行者123 更新时间:2023-11-28 02:37:46 24 4
gpt4 key购买 nike

我有这个问题,jqGrid中的treegrid在通过xml传递数据时忽略最后一个选项(是否扩展节点)。有人遇到过这种情况吗?有解决办法吗?也许是我的数据?以下是产生问题的示例数据:

<rows>
<page>1</page>
<total>0</total>
<records>4</records>
<row id='2'>
<cell>2</cell>
<cell>Parent</cell>
<cell>0</cell>
<cell>NULL</cell>
<cell>false</cell>
<cell>true</cell>
</row>
<row id='1'>
<cell>1</cell>
<cell>Child 1</cell>
<cell>1</cell>
<cell>2</cell>
<cell>true</cell>
<cell>false</cell>
</row>
<row id='3'>
<cell>3</cell>
<cell>Child 2</cell>
<cell>1</cell>
<cell>2</cell>
<cell>true</cell>
<cell>false</cell>
</row>
<row id='4'>
<cell>4</cell>
<cell>Child 3</cell>
<cell>1</cell>
<cell>2</cell>
<cell>true</cell>
<cell>false</cell>
</row>
</rows>

最佳答案

对我来说,这更像是 TreeGrid 中的一个错误。不过,您可以通过添加 loaded: true 轻松解决问题属性给需要扩展的节点。原因在the line代码和上面的一些行(参见 here )其中 loaded属性(和 ldat[loaded] )将是 undefined所以ldat[expanded]将更改为undefined对于所有没有 loaded 的项目已定义。

The demo演示解决方案。它使用您发布的 XML,但带有附加 <cell>true</cell>添加在 "Parent" 定义的末尾项目:

...
<row id='2'>
<cell>2</cell>
<cell>Parent</cell>
<cell>0</cell>
<cell>NULL</cell>
<cell>false</cell>
<cell>true</cell>
<cell>true</cell> <!-- added the element for loaded: true -->
</row>
...

已更新:我认为修复该错误(最初描述为 here )的最简单方法是更改​​ the line代码 setTreeNode

ldat[expanded] = ((ldat[expanded] == "true" || ldat[expanded] === true) ? true : false) &&
ldat[loaded];

至以下内容

ldat[expanded] = ((ldat[expanded] == "true" || ldat[expanded] === true) ? true : false) &&
(ldat[loaded] || ldat[loaded] === undefined);

参见the corresponding demo使用固定代码。

关于javascript - jqGrid treegrid 在提供 xml 数据时忽略展开状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13195656/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com