我有一个基于this post的具有行分组和行扩展功能的TurboTable。 docs中的子标题示例执行类似的操作。
<ng-template pTemplate="body" let-expanded="expanded" let-columns="columns" let-rowData let-rowData.viewDetails="false" let-rowIndex="rowIndex">
<ng-container *ngIf="groupField!=null">
<tr class="ui-widget-header" *ngIf="rowGroupMetadata[rowData[groupField]] && rowGroupMetadata[rowData[groupField]].index === rowIndex">
<td [attr.colspan]="columns.length+1"> <!-- Some custom logic for implementing row grouping as I need rowexpansion for something else -->
<i (click)="toggleGroup(rowIndex)" [ngClass]="rowData.viewDetails ? 'fa fa-fw fa-chevron-circle-down' : 'fa fa-fw fa-chevron-circle-right'"></i>
<span> {{rowData[groupField]}}</span>
</td>
</tr>
<tr *ngIf="rowData.viewDetails">
<td [attr.colspan]="1" [ngClass]="['table-action-element']">
<!-- Checkbox here -->
</td>
<td [ngClass]="['table-action-element']"> <!-- This part links to the rowexpansion template which is working fine -->
<a href="#" [pRowToggler]="rowData">
<i [ngClass]="expanded ? 'fa fa-chevron-circle-down' : 'fa fa-chevron-circle-right'"></i>
</a>
</td>
<td *ngFor="let col of columns">
{{rowData[col.field]}}
</td>
</tr>
</ng-container>
</ng-template>
类table-action-element
强制执行width: 30px;
,这可以在标题中看到。
但是,当我扩展行组时,出现的行列没有此宽度。如果我调整有问题的列的大小,那么它们(整个东西)的大小将调整为正确的宽度。
当我在浏览器(Chrome / Firefox)中进行检查并检查计算出的值时,这就是我所看到的。
...并且table-action-element
强制使用的宽度在任何时候都不会被覆盖(甚至高于它)。
如果我删除了第一个<tr>
或进行了groupField=null
(本质上是通过编程方式删除),那么格式化似乎很好并且符合预期。
我也需要第一个<tr>
才能正确完成我需要做的事情。如何找出干扰的来源?