JqWidgets treegrid发布dataAdapter对象

时间:2014-09-29 23:20:55

标签: jqwidget jqxtreegrid

我在AngularJS环境中,并试图让jqWidgets TreeGrid工作。

我将dataAdapter全部连接到Json格式的数据,但网格只呈现一行。

我在同一页面上也有一个测试treeGrid,并且有样本数据,工作正常。

我将最终的Json数据设置并排,以尝试确定我出错的地方。

我已将此页面用作连接树形网格设置等的指南。http://www.jqwidgets.com/jquery-widgets-documentation/documentation/angularjs/angularjs.htm

这是显示" bad"的jqx treegrid指令的html。格:

<jqx-tree-grid jqx-instance="jqGridHierObj" jqx-settings="vm.jqGridHierSettings"></jqx-tree-grid>

&#34;坏&#34; Json数据树设置绑定了vm.jqGridHierSettings(太大而无法发布内联):

http://www.bobmazzo.com/grid/TreeGrid_Data_Bad.txt

这是&#34;好&#34;网格与员​​工测试数据:

HTML:

<jqx-tree-grid jqx-instance="jqGridEmpObj" jqx-settings="vm.jqGridEmpSettings"></jqx-grid>  

vm.jqGridEmpSettings Json数据:

http://www.bobmazzo.com/grid/TreeGrid_Data_Good.txt

并从我的Angular控制器代码中获取了一个带有Json数据绑定的javascript片段:

我需要帮助弄清楚为什么&#34;坏&#34;网格不工作!为什么它只渲染一行,其中应该显示数据层次结构。

感谢。

鲍勃

1 个答案:

答案 0 :(得分:0)

我找到了解决方案。您必须在“source”对象中将“children”定义为数组类型;也就是说,在将该对象传递给dataAdapter之前。请参阅下面的dataFields属性:

   var source = {
            dataType: "json",
            dataFields: [
                {
                    "name": "id",
                    "type": "number"
                },
                {
                    "name": "field0",
                    "type": "string"
                },
                {
                    "name": "field1",
                    "type": "number"
                },
                {
                    "name": "field2",
                    "type": "number"
                },
                 {
                     name: 'children',      // MUST DEFINE CHILDREN AS ARRAY TYPE
                     type: 'array'
                 },
            ],
            hierarchy: {
                root: 'children'
            },
            id: 'id',
            localData: myData
        };

   var dataAdapter = new $.jqx.dataAdapter(source);