2016-02-24 140 views
0

剑道格列需要帮助的剑道电网,在那里我有剑道电网动态列。与动态数据

dynamicCols-对象是具有标题和value属性的列表,它可以是动态的,其中它可以具有与标题,值对列表中的任何数量的对象的一个​​对象。

剑道电网运行良好,如果JSON有其在同级各种性质的扁平结构,我还没有碰到过这种hierarchial/JSON结构来直到现在。

该网格还需要支持服务器端排序,并与C#的Web API过滤,用剑道数据源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 
+1

恐怕你的第二个json无效。太多']]'。 – DontVoteMeDown

回答

1

你有两个选择:

  • 当您完成提取数据,并创建新的前栅格,解决JSON对象,并创建平坦列对象,该对象的网格接受
  • 你的第二个选择是忘记创建动态列的想法,而是有一个模板列动态解析它所需要显示。在这种情况下,您可以创建一个可以从模板中调用的外部函数。这样你就不会结束复杂和蹩脚的模板。如何从模板调用外部函数涵盖了here
1

对我来说最简单的解决方案是制作所有列,然后隐藏那些不需要的列。

即使隐藏在50列左右也没有任何明显的时间。

(我很高兴知道所有可能出现的列)