YUI DataTable嵌套列,其中JSON对象具有未知密钥

时间:2012-06-14 00:03:51

标签: datatable nested yui yui-datatable

我对YUI很新,需要一些帮助。

我有这样的JSON响应:

{
    "Results":[
        {
            "alpha":57.935,
            "beta:{
                "delta":2.975,
                "omega":1.431
            },
            "gamma":{
                "theta":"0.339",
                "lambda":"1.195"
            }
        },
        {
            "alpha":87,
            "beta":{
                "lambda":2.680,
                "kappa":0.714
            },
            "gamma":{
                "zeta":"0.288",
                "epsilon":"0.289"
            }
        }
    ]
}

我想有一个嵌套列的数据表,其中:
1)alpha,beta和gamma是父列 2)beta和gamma各有两列由JSON键值对组成(例如,delta => 2.975)。
3)行数,即总键值对,是动态的。

基本上是这样的:

    ----------------------------------------------
    | alpha   |      beta      |       gamma     |
    ----------------------------------------------
    | 57.935  |  delta | 2.975 |   theta | 0.339 |
    ----------------------------------------------
    |         |  omega | 1.431 |  lambda | 1.195 |
    ----------------------------------------------
    | 87.435  | lambda | 2.680 |    zeta | 0.288 |
    ----------------------------------------------
    |         |  kappa | 0.714 | epsilon | 0.289 |
    ----------------------------------------------

我已经能够生成非嵌套的简单JSON响应。

我的问题:
1)我有每个JSON子对象({theta:0.339}等)的对象。两个子列都需要来自同一对象的数据。如何在不修改的情况下使用它?我应该对myColumnDefs中的两个子列使用相同的'keyName'吗? 2)如何创建alpha td为空的多行?

任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:1)

这不是一个容易解决的问题。除非您能够在将JSON发送到客户端之前将其格式化为单个行,否则可以使用某些列配置,格式化程序和自定义bodyView modelList属性设置器来解决方案,该数据展平展示数据以进行显示。 http://jsbin.com/3/efigim/1/edit?javascript,live

这可能会导致表格行的一些破坏 - >数据记录关联,因为bodyView的modelList包含自己的行模型而不是共享clientId。这可能会或可能不会妨碍您,具体取决于您是否需要其他功能。

但是,由于DataTable的数据ModelList保留了beta和gamma值的对象 - 只有视图的表示是自定义的 - 你可能没问题。

YMMV,HTH