【问题标题】:How to have headers in first column instead of regular headers in top row?如何在第一列中有标题而不是顶行中的常规标题?
【发布时间】:2015-04-05 04:48:01
【问题描述】:

一般来说,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 文件优化/可读方式的正确方法。

【问题讨论】:

  • 由于我猜你在同一列中需要不同的数据类型,你将不得不自己去完全编程。我猜应该可以在不到一年的时间内完成。
  • 我认为您应该考虑更改服务器端脚本以获得更适合的 json。
  • 但是如果我想以上述格式提供 UI 结构,没有其他美化 Json 文件的方法。 :(

标签: json extjs extjs4.2 extjs-grid


【解决方案1】:

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

【讨论】:

  • 我也看过这种方法,但同样,它会产生我在问题中提到的 Json 问题。不是吗?
  • 嗯,从服务器收到的 JSON 必须包含“行标题 [123]”作为第 0 列的值 - 第 0 列的标题为空。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-04-20
  • 2017-12-23
  • 2020-02-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多