PrimeNg TurboTable-单元格宽度与标题宽度不匹配

时间:2019-04-23 07:04:20

标签: css angular angular6 primeng primeng-turbotable

我有一个基于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;,这可以在标题中看到。 但是,当我扩展行组时,出现的行列没有此宽度。如果我调整有问题的列的大小,那么它们(整个东西)的大小将调整为正确的宽度。

Wrong width in columns

当我在浏览器(Chrome / Firefox)中进行检查并检查计算出的值时,这就是我所看到的。

Computed width

...并且table-action-element强制使用的宽度在任何时候都不会被覆盖(甚至高于它)。

table-action-element CSS

如果我删除了第一个<tr>或进行了groupField=null(本质上是通过编程方式删除),那么格式化似乎很好并且符合预期。 Right width in columns

我也需要第一个<tr>才能正确完成我需要做的事情。如何找出干扰的来源?

0 个答案:

没有答案