【发布时间】:2015-04-05 04:48:01
【问题描述】:
一般来说,ExtJS 将 JSON 呈现为网格,考虑到属性位于顶部列并且它们的数量是固定的。并且相应的值作为记录加载到行中。这里的行数可能会根据 Json 中的记录而有所不同。
但我的要求略有变化。我希望属性转到第一行和相应的列。这里的列数可能会根据 Json 中的记录而有所不同。
我想呈现如下所示的内容:
+-----------------+------------+---------------+
| | Column 1 | Column 2 |
+------------------------------+---------------+
| Row Header 1 | ... | |
+------------------------------+---------------+
| Row Header 2 | | |
+------------------------------+---------------+
| Row Header 3 | | |
+----------------------------------------------+
我了解实现列标题的方法,也有很多可用的文档。例如
我什至使用这里描述的解决方案实现了这一点:
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