【发布时间】:2020-02-10 12:05:50
【问题描述】:
我需要在 Angular 中动态构建 Clarity Datagrid 的列。我就是这样做的:
我有一个数组columnsDef,其中包含我需要显示的字段的定义,如下所示:
columnsDef = [
{id:'id', label:'ID'},
{id:'client', label:'Client/Prospect'},
...
]
和另一个变量backlog 保存要在网格中显示的实际数据。
然后,在我的 html 模板中,我有以下代码来定义列标题和单元格:
<clr-datagrid>
<clr-dg-column *ngFor="let def of columnsDef" [clrDgField]="def.id">
{{ def.label }}
</clr-dg-column>
<clr-dg-row *clrDgItems="let request of backlog" [clrDgItem]="request">
<clr-dg-cell *ngFor="let def of columnsDef">
{{ request[def.id] }}
</clr-dg-cell>
</clr-dg-row>
</clr-datagrid>
这实际上是“有效的”,但列对齐完全搞砸了。这些值不在其标题下方,并且单元格宽度因行而异。
(抱歉,我不得不像素化一些机密数据)
我该如何解决这个问题?
【问题讨论】:
-
您可以将具有特定
width的样式应用于列 - 您可能必须对clr-dg-column和对应的clr-dg-cell使用相同的值 -
我试过了,只要用户不调整一个标题的大小,它就可以工作。发生这种情况时,所有列都会回到它们“奇怪”的尺寸。我想这与数据网格自动宽度功能有关。
-
我猜你必须为所有列固定宽度,并为具有很长值的列使用某种自动换行。