【发布时间】:2019-05-23 19:58:00
【问题描述】:
我正在 Angular 应用程序中构建一个 UI,需要为下面屏幕截图中突出显示的名为 Subscriptions 的列执行 colspan。我尝试应用 colspan 但似乎没有生效。
我需要的是这样的
HTML
<tr>
<th class="tableItem bold">Legal Class Name</th>
<th class="tableItem bold">Last Edited</th>
<th class="tableItem bold">Legal Class ID</th>
<th class="tableItem bold"></th>
<th class="tableItem bold">TERMS</th>
<th class="tableItem bold">SUBSCRIPTIONS</th>
<th class="tableItem bold">Primary Currency</th>
</tr>
<ng-container>
<!-- <tr *ngFor="let f of fundClass['LegalFundClassDetailsViewModel'] | keyvalue"> -->
<tr *ngFor="let f of LegalFundClasses.LegalFundClassDetailsViewModel">
<td class="tableItem">{{f.Description}}</td>
<td class="tableItem"></td>
<td class="tableItem">{{f.Id}}</td>
<td class="tableItem"></td>
<td class="tableItem"></td>
<td colspan="5" class="tableItem"></td>
<td class="tableItem">
<kendo-dropdownlist style="width:100%" [(ngModel)]="f.CurrencyId"
class="form-control form-control-sm" [data]="Currencies"
[filterable]="false" textField="CURRENCY_NAME" [valuePrimitive]="true" valueField="CURRENCY_ID">
</kendo-dropdownlist>
</td>
</tr>
</ng-container>
</table>
在检查元素时会生成什么。我在三个屏幕截图中分享了它,因为很难在一个屏幕截图中捕获
屏幕截图 1 - 标题部分
屏幕截图 2 - 行部分 - 展开
屏幕截图 3 - 行部分 - 折叠
折叠视图中整个表格的屏幕截图 4
编辑
我已经尝试了@cpcolella 建议的伪代码,但需要显示如帖子中上面的屏幕截图所示
所以它应该显示 合法类名 Class A Class B Class C 一排
<div *ngIf="LegalFundClasses && LegalFundClasses.LegalFundClassDetailsViewModel && ColumnNames">
<table class="fundClassesTable table-striped">
<tr *ngFor="let c of ColumnNames">
<th class="tableItem bold">{{ c }}</th>
<ng-container *ngFor="let f of LegalFundClasses.LegalFundClassDetailsViewModel">
<td class="tableItem" *ngIf="c == ColumnNames[0]">{{f.Description}}</td>
<td class="tableItem" *ngIf="c == ColumnNames[1]">{{f.AuditSummary}}</td>
<td class="tableItem" *ngIf="c == ColumnNames[2]">{{f.Id}}</td>
</ng-container>
</tr>
</table>
</div>
</div>
上述逻辑的输出
【问题讨论】:
-
Ehm,如果您需要一个 td 来跨越 5 列,为什么 td 与源中的 ths 一样多?
-
要求是记录需要横向显示
-
我不能 100% 确定,但这可能是因为您需要将
th元素与td元素匹配才能工作。尝试将th colspan="5"放在上面的tr中的倒数第二个位置。 -
@pjlamb12 嗯,没有。
colspan的全部目的是能够在一行中跨越比另一行更多的列。 -
目的是能够跨越更多的列,而不仅仅是一个。但我很确定每行中的列数必须与其他行相同,否则布局会混乱并且不起作用。在 WE Schools 的这个示例中,它使用 colspan,但它们的每一行仍然具有相同数量的列。 w3schools.com/tags/att_td_colspan.asp