在PrimeNG Table中,我们现在可以使用Column对象的style属性来设置列宽度。以下是一个例子:
HT
ML
代码:
<p-table [value]="cars">
<ng-template pTemplate="header">
<th style="width: 20%;">Model</th>
<th style="width: 30%;">Manufacturer</th>
<th style="width: 10%;">Year</th>
<th style="width: 40%;">Color</th>
</ng-template>
<ng-template pTemplate="body" let-car>
<td>{{car.model}}</td>
<td>{{car.manufacturer}}</td>
<td>{{car.year}}</td>
<td>{{car.color}}</td>
</ng-template>
</p-table>
在此示例中,我们在每个Column元素中添加了一个style属性,该属性设置为我们想要的列宽度百分比。
还有一种方法可以使用Input属性来设置列宽度。以下是一个完整的可以使用Input属性设置列宽度的表格示例:
HTML代码:
<p-table [columns]="cols" [value]="cars" [autoLayout]="false">
<ng-template pTemplate="header" let-columns>
<th *ngFor="let col of columns" [style.width]="col.width" [pSortableColumn]="col.field">
{{col.header}}
<p-sortIcon [field]="col.field"></p-sortIcon>
</ng-template>
<ng-template pTemplate="body" let-car let-columns="columns">
<td *ngFor="let col of columns" [style.width]="col.width">
{{car[col.field]}}
</ng-template>
</p-table>
在这个示例中,我们有一个名为cols的列定义,其中每列都定义了一个width属性。该属性是一个字符串,它告诉框架该列应该有多宽。然后我们使用一个NgFor循环将每个列添加到标头和主体单元格中,并将width属性设置为列宽度。要激活此方法,必须将autoLayout属性设置为false。
这就是设置固定列宽的两种方法,不再依赖于Autolayout属性。