繁体   English   中英

包含动态数据的Kendo网格列

[英]Kendo grid columns with dynamic data

需要有关Kendo Grid的帮助,在Kendo Grid中有动态列。

dynamicCols- Object是具有标题和值属性列表的对象,该属性可以是动态的,在列表中可以包含标题,值对的任意数量的对象。

如果JSON具有扁平结构且所有属性都处于同一级别,则Kendo网格效果很好,并且到目前为止,我还没有遇到过这种层次结构/ JSON结构。

该网格还需要使用C#Web API支持服务器端排序和过滤,并使用Kendo Datasource API进行服务器端排序和过滤。

现有的剑道列映射

var cols = [
            { field: 'name', title: 'Name', encoded: false },
            { field: 'id', title: 'Id' },
            { field: 'age', title: 'Age }
           ]

 json = [{
            name:'XYZ', id:123, age:45,
            dynamicCols: [{title:'Gender',value:'Male'},      
                          {title:'Veteran',value:'Yes'}]
        }, {
            name:'Jim', id:555, age:24,
            dynamicCols: [{title:'Gender',value:'Male'},
                          {title:'Veteran',value:'No'}]
        }, {
            name:'Nick', id:557, age:78,
            dynamicCols: [{title:'Gender',value:'Female'},
                          {title:'Veteran',value:'No'}]
        }]

**Expected Grid**

        Name   Id   Age  Gender  Veteran
        XYZ    123  45   Male     Yes
        Jim    555  24   Male     No

对于Json2

    json2 = [
        {name:'XYZ', id:123, age:45,
        dynamicCols: [{title:'SSN',value:'xx-xx-7891'}]
        },
        {name:'Jim', id:555, age:24,
        dynamicCols: [{title:'SSN',value:'xx-xx-7892'}]
        },
        {name:'Nick', id:557, age:78,
        dynamicCols: [{title:'SSN',value:'xx-xx-7895'}]
        }];

    **Expected Grid**

        Name   Id   Age  Gender  SSN
        XYZ    123  45   Male    xx-xx-7891
        Jim    555  24   Male    xx-xx-7892

您有两种选择:

  • 完成获取数据后,在创建新的Grid之前,请解析JSON对象并创建Grid接受的平面列对象
  • 您的第二个选择是忘记创建动态列的想法,而是使用一个模板列来动态解析其需要显示的内容。 在这种情况下,您将创建可从模板调用的外部函数。 这样,您最终就不会得到复杂而笨拙的模板。 如何调用外部函数从模板覆盖这里

对我来说,最简单的解决方案是制作所有列,然后通过隐藏不需要的列来结束它。

即使隐藏约50列也不会花费任何明显的时间。

(我很荣幸知道所有可能出现的列)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM