1

您好,有一个类型为 json 的对象

{
  "alpha": [
    {
      "t1": {},
      "t2": {},
      "t3": [
        {
          "type": "a",
          "width": "b"
        }
      ]
    }
  ]
}

在我的开发极端中,我给出了以下代码:

<dx-data-grid id="gridContainer"
    [dataSource]="alpha"
    [masterDetail]="{ enabled: true, template: 'detail' }"
    keyExpr="ID"
    [showBorders]="true">

    <dxi-column dataField="t1" caption="Type1"></dxi-column>
    <dxi-column dataField="t2" caption="Type2"></dxi-column>

    <div *dxTemplate="let al of 'detail'">
        <dx-data-grid 
------------------------------
            [dataSource]="alpha.t3"
            [showBorders]="true"
            [columnAutoWidth]="true">
                <dxi-column dataField="type"></dxi-column>
                <dxi-column dataField="width" dataType="date"></dxi-column>

------------------------
[dataSource]="alpha"
            [showBorders]="true"
            [columnAutoWidth]="true">
                <dxi-column dataField="t3.type"></dxi-column>
                <dxi-column dataField="t3.width" dataType="date"></dxi-column>

------------------------
        </dx-data-grid>       
    </div>
</dx-data-grid>

在 alpha 对象中,我将 t1 和 t2 显示为表格行,而 t3 仅在行展开时显示。一旦行展开,它将显示 type = a 和 width = b。我尝试了两种方法来解决由 --------------- 分隔的情况,但两者都不起作用。我能够在外面的行中显示 t1 和 t2 但 t3 表只显示类型和宽度,值是空的。

4

1 回答 1

0

我认为第一个解决方案非常接近,您做了一个模板循环,但您从未使用过。

试试这个:

[dataSource]="al"
            [showBorders]="true"
            [columnAutoWidth]="true">
                <dxi-column dataField="type"></dxi-column>
                <dxi-column dataField="width" dataType="date"></dxi-column>

更重要的是,我认为原始数据源可能存在问题,因为它有时是一个数组,有时是一个对象,也许最好将其更改为这两者之间的一种选择。

于 2020-12-07T09:55:53.123 回答