简介
树状表格控件
使用简介
首先设置TreeGrid的nodes属性:
// @Bind #treeGrid1.onCreate !function(self, arg) { self.set("nodes",[{ label:"节点1", data:{ prop1:'产品1', prop2:'属性1', prop3:'属性2' } },{ label:"节点2", data:{ prop1:'产品2', prop2:'属性2', prop3:'属性2' }, nodes:[{ label:"节点21", data:{ prop1:'产品21', prop2:'属性21', prop3:'属性21' } },{ label:"节点22", data:{ prop1:'产品22', prop2:'属性22', prop3:'属性22' } }] },{ label:"节点3", data:{ prop1:'产品3', prop2:'属性3', prop3:'属性3' } }]); }
上面的格式中不难看出声明一个Node节点的JSON结构为:
{ label:"xxx", data:{} }
其中label为节点的标题,data代表节点对应的数据,如果这个节点还有子节点,则通过nodes属性递归定义:
{ label:"父节点标题", data:{}, nodes:[{ label:"第一层子节点标题A", data:{}, nodes:[{ label:"第二层子节点标题", data:{}, nodes:[{ ... }] }] },{ label:"第一层子节点标题B", data:{} },...] }
通过上面的方式,我们定义好了一个JSON数组,并将它设置为TreeGrid的nodes属性。
接下来再定义TreeGrid的其它属性。我们给TreeGrid中添加三个DataColumn(TreeGrid具有Grid的特性,因此可以添加DataColumn):
并分别设置这三个DataColumn的property属性为prop1,prop2,prop3,最后设置一个treeColumn属性,告诉TreeGrid的树节点出现在那个列中,我们设置为prop1,最终的XML定义如下:
<TreeGrid id="treeGrid1"> <Property name="treeColumn">prop1</Property> <Columns> <DataColumn> <Property name="property">prop1</Property> <Property name="name">prop1</Property> <Editor/> </DataColumn> <DataColumn> <Property name="property">prop2</Property> <Property name="name">prop2</Property> <Editor/> </DataColumn> <DataColumn> <Property name="property">prop3</Property> <Property name="name">prop3</Property> <Editor/> </DataColumn> </Columns> <Nodes/> </TreeGrid>
这样这个范例最终的显示效果为:
详细属性说明
该控件兼具Tree与Grid的所有特性,因此其基本属性请参考:
treeColumn
该属性决定了树节点所在的列,如使用简介中的范例,如果将treeColumn调整为prop2,则最终效果为:
应该注意到这个时候树节点就位于prop2列上。
Attachments:
TreeGrid.PNG (image/png)
TreeGridDesign.PNG (image/png)
TreeGridPreview.PNG (image/png)
TreeGridTreeColumn.PNG (image/png)
TreeGridDesign.PNG (image/png)
TreeGridPreview.PNG (image/png)
TreeGridTreeColumn.PNG (image/png)