我目前正在尝试使用XML填充树状网格--问题是我不知道该如何做。我觉得DHTMLx文档不够清晰,因为每个示例似乎都隐藏了相关的xml。
我已经像这样定义了树网格(遵循一个示例布局这里):
this.treeGrid = new dhtmlXGridObject($scope.divId);
this.treeGrid.selMultiRows = true;
this.treeGrid.imgURL = "resources/dhtmlxsuite/dhtmlxgrid/codebase/imgs/icons_greenfolders/";
this.treeGrid.setImagePath("resources/dhtmlxsuite/dhtmlxgrid/codebase/imgs/");
this.treeGrid.setHeader("Tree,Plain Text,Long Text,Color,Checkbox");
this.treeGrid.setInitWidths("150,100,100,100,100");
this.treeGrid.setColAlign("left,left,left,left,center");
this.treeGrid.setColTypes("tree,ed,txt,ch,ch");
this.treeGrid.setColSorting("str,str,str,na,str");
// Init needs to be included or the title won't appear
this.treeGrid.init();
// Needs the css included in the index.html page before it is enforced
this.treeGrid.setSkin("dhx_skyblue");
this.treeGrid.loadXML($scope.xml);因此,从上面可以看到,我希望名为“tree”的列是这个网格上的实际树。那么,xml应该如何查找呢?是否所有列都必须有数据,否则就无法填充?我尝试了以下操作,但是错误Error On Load XML失败了
<?xml version='1.0' encoding='iso-8859-1'?>
<tree id = "Tree">
<item id = "p1" text = "parent item 1">
<item id = "c1-0" text = "child item 1" />
<item id = "c1-0" text = "child item 2" />
</item>
<item id="p2" text="parent item 1" />
</tree>谢谢
注意:我使用的是DHTMLx pro!
发布于 2014-06-06 08:07:16
我必须从DHTMLx站点中提取xml,使用Mozilla工具来确定它们如何构造树网格。下面是一个如何做到这一点的例子:
<?xml version="1.0" encoding="UTF-8"?>
<rows>
<head>
<beforeInit>
<call command="setSkin">
<param>light</param>
</call>
<call command="setStyle">
<param>text-align:center;</param>
</call>
<call command="setImagePath">
<param>resources/dhtmlxsuite/dhtmlxGrid/codebase/imgs/</param>
</call>
<!--
<call command="kidsXmlFile">
<param></param>
</call>
-->
</beforeInit>
<column width="150" type="tree" align="left" color="white"
sort="str">Tree</column>
<column width="150" type="ed" align="left" sort="str">Cost ($)
</column>
<column width="150" type="txt" align="left" sort="str">Engine Size
</column>
</head>
<!-- <userdata name="gud1"> userdata value 1 </userdata> <userdata name="gud2">
userdata value 2 </userdata> -->
<row id="honda" selected="1" call="1" xmlkids="1">
<!-- <userdata name="hondaUD"> userdata value for honda </userdata> -->
<cell>Honda</cell>
</row>
<row id="bmw" xmlkids="1">
<cell>BMW</cell>
<row id="bmw1">
<!-- <userdata name="bmwUD1"> userdata value for bmw1 1 </userdata> <userdata
name="bmwUD2"> userdata value for bmw1 2 </userdata> -->
<cell>325i</cell>
<cell>30,800</cell>
<cell>2.5L</cell>
</row>
<row id="bmw2">
<cell>M3 Coupe</cell>
<cell>47,100</cell>
<cell>3.2L</cell>
</row>
</row>
<row id="vw" xmlkids="1">
<cell>Volkswagen</cell>
<row id="vw1">
<cell>Colf GL 2.0</cell>
<cell>15,580</cell>
<cell>2.0L</cell>
</row>
</row>
<row id="mazda" xmlkids="1">
<cell>Mazda</cell>
<row id="mazda1">
<cell>MX-5 Miata</cell>
<cell>21,868</cell>
<cell>1.8L</cell>
</row>
</row>
<row id="porsche" xmlkids="1">
<cell>Porsche</cell>
<row id="porsche1">
<cell>Porsche 911</cell>
<cell>128,200</cell>
<cell>3.6L</cell>
</row>
</row>
如果您只需要静态xml,那么上面的内容就足够了,您可以忽略命令kidsXmlFile,因为它用于从服务器动态加载数据。
发布于 2014-06-11 11:24:18
您创建的xml结构不正确。从initialization.html上拿出来看看这个:
<?xml version="1.0" encoding="UTF-8"?>
<rows parent="h0">
<userdata name="gud1">
userdata value 1
</userdata>
<row id="h523" selected="1" call="1" xmlkids="1">
<userdata name="hondaUD">
userdata value for honda
</userdata>
<cell image="folder.gif">Honda</cell>
<cell>...</cell>
<cell>...</cell>
</row>
</rows>https://stackoverflow.com/questions/24042006
复制相似问题