如何在第一列中包含标题而不是在顶行中包含常规标题?

时间:2015-02-05 10:56:26

标签: json extjs extjs4.2 extjs-grid

通常,ExtJS将JSON渲染到网格中,考虑到属性转到顶部列并且它们的数量是固定的。并且相应的值作为记录加载到行中。这些行数可能因Json中的记录而异。

但我的要求略有变化。我希望属性转到第一行和相应的列。这里的列数可能会有所不同,具体取决于Json中的记录。

我想渲染如下所示的内容:

+-----------------+------------+---------------+
|                 |  Column 1  |    Column 2   |
+------------------------------+---------------+
|  Row Header 1   |    ...     |               |
+------------------------------+---------------+
|  Row Header 2   |            |               |
+------------------------------+---------------+
|  Row Header 3   |            |               |
+----------------------------------------------+

我理解实现列标题的方法,也有很多文档可用。例如

http://docs.sencha.com/extjs/4.2.3/extjs-build/examples/build/KitchenSink/ext-theme-neptune/#grouped-header-grid

我甚至使用此处描述的解决方案实现了这一目标:

How to get the Row Headers functionality in ExtJs?

但是在这种情况下,JSON看起来并不好看并且似乎不可维护,因为当我们想要添加记录时,我们需要为所有数组项添加另一个属性:

{ [  

  { prop1 : value,  prop2 : value },  
  { prop1 : value,  prop2 : value },

  // to add new record, we need to do below :

  { prop1 : value,  prop2 : value,  prop3 : value },  
  { prop1 : value,  prop2 : value,  prop3 : value }


] }

与常规ExtJS网格的情况下添加具有固定属性的数组项不同:

{ [  

  { prop1 : value,  prop2 : value },  
  { prop1 : value,  prop2 : value },

  // to add new record, we need to do below :

  { prop1 : value,  prop2 : value },  
  { prop1 : value,  prop2 : value },  

  { prop1 : value,  prop2 : value }


] }

要在网格中加载的数据非常庞大且不可预测的行。请告诉我实现它的正确方法,并保持JSON文件的优化/可读方式。

1 个答案:

答案 0 :(得分:0)

Ext中没有列标题的概念,但是,您可以使用锁定网格实现类似的功能:http://dev.sencha.com/ext/5.1.0/examples/kitchensink/#spreadsheet