Angular ngx-datatable 一列多条数据
Angular ngx-datatable multiple data in one column
我在向 ngx-datatable 中的列添加多个 prop 时遇到一点问题:
columns = [
{ prop: 'semesterName', name: 'סמסטר', resizeable: false },
{ prop: 'eventName', name: 'מפגש', resizeable: false },
{ prop: 'when', name: 'מועד מפגש', resizeable: false },
{ prop: 'lecturerName', name: 'מרצה', resizeable: false },
{ prop: 'hugName', name: 'חוג', resizeable: false },
];
我需要在一栏中显示两个道具。就像在一栏中的 'eventName' 和 'when'。
型号:
export class Course {
semester: string;
semesterName: string;
courseObject: string;
course: string;
courseName: string;
eventObject: string;
event: string;
eventName: string;
hugName: string;
dayOfWeek: string;
dayOfWeekNum: string;
where: string;
when: string;
lecturerName: string;
lecturerEMail: string;
authMembers: number;
eventStatus: string;}
Html:
<ngx-datatable[columns]="columns" [rows]="courses">
</ngx-datatable>
谢谢!
想通了:
更改列名 - let-column
格式化单元格内容(例如:日期)- let-value
使用多个属性进行格式化 例如:日期 - let-row
模板:
<ngx-datatable [rows]="courses">
<ngx-datatable-column>
<ng-template let-column="column" ngx-datatable-header-template>
סמסטר
</ng-template>
<ng-template let-row="row" ngx-datatable-cell-template>
{{row.semesterName}}
</ng-template>
</ngx-datatable-column>
<ngx-datatable-column>
<ng-template let-column="column" ngx-datatable-header-template>
מפגש
</ng-template>
<ng-template let-row="row" ngx-datatable-cell-template>
{{row.event}} <br> {{row.eventName}}
</ng-template>
</ngx-datatable-column>
<ngx-datatable-column>
<ng-template let-column="column" ngx-datatable-header-template>
מועד מפגש
</ng-template>
<ng-template let-row="row" ngx-datatable-cell-template>
{{row.where}} <br> {{row.when}}
</ng-template>
</ngx-datatable-column>
<ngx-datatable-column>
<ng-template let-column="column" ngx-datatable-header-template>
מרצה
</ng-template>
<ng-template let-row="row" ngx-datatable-cell-template>
<a href="mailto:{{row.lecturerEmail}}">{{row.lecturerName}}</a>
</ng-template>
</ngx-datatable-column>
<ngx-datatable-column>
<ng-template let-column="column" ngx-datatable-header-template>
חוג
</ng-template>
<ng-template let-row="row" ngx-datatable-cell-template>
{{row.hugName}}
</ng-template>
</ngx-datatable-column>
</ngx-datatable>
不再需要 [列] - 将其从模板中删除。
如果您想坚持使用 columns
和 rows
输入,您可以将聚合列添加到行本身。
如果不改变 courses
,属性将如下所示:
const rows = courses.map(course => ({
...course,
eventDetails: `${course.eventName} on ${course.when}`
}))
const columns = [
{ prop: 'eventDetails', name: 'Event', resizable: false },
// the rest of your columns...
]
上面接受的答案对我也有用,谢谢!
有时,如果有人在一列中查找多个属性并且一次只能显示一个值,可以使用以下方法
<ngx-datatable-column name="Test">
<ng-template ngx-datatable-cell-template let-rowIndex="rowIndex" let-value="value" let-row="row">
{{ row.propert1 || row.propert2 }}
</ng-template>
</ngx-datatable-column>
谢谢
我在向 ngx-datatable 中的列添加多个 prop 时遇到一点问题:
columns = [
{ prop: 'semesterName', name: 'סמסטר', resizeable: false },
{ prop: 'eventName', name: 'מפגש', resizeable: false },
{ prop: 'when', name: 'מועד מפגש', resizeable: false },
{ prop: 'lecturerName', name: 'מרצה', resizeable: false },
{ prop: 'hugName', name: 'חוג', resizeable: false },
];
我需要在一栏中显示两个道具。就像在一栏中的 'eventName' 和 'when'。
型号:
export class Course {
semester: string;
semesterName: string;
courseObject: string;
course: string;
courseName: string;
eventObject: string;
event: string;
eventName: string;
hugName: string;
dayOfWeek: string;
dayOfWeekNum: string;
where: string;
when: string;
lecturerName: string;
lecturerEMail: string;
authMembers: number;
eventStatus: string;}
Html:
<ngx-datatable[columns]="columns" [rows]="courses">
</ngx-datatable>
谢谢!
想通了:
更改列名 - let-column
格式化单元格内容(例如:日期)- let-value
使用多个属性进行格式化 例如:日期 - let-row
模板:
<ngx-datatable [rows]="courses">
<ngx-datatable-column>
<ng-template let-column="column" ngx-datatable-header-template>
סמסטר
</ng-template>
<ng-template let-row="row" ngx-datatable-cell-template>
{{row.semesterName}}
</ng-template>
</ngx-datatable-column>
<ngx-datatable-column>
<ng-template let-column="column" ngx-datatable-header-template>
מפגש
</ng-template>
<ng-template let-row="row" ngx-datatable-cell-template>
{{row.event}} <br> {{row.eventName}}
</ng-template>
</ngx-datatable-column>
<ngx-datatable-column>
<ng-template let-column="column" ngx-datatable-header-template>
מועד מפגש
</ng-template>
<ng-template let-row="row" ngx-datatable-cell-template>
{{row.where}} <br> {{row.when}}
</ng-template>
</ngx-datatable-column>
<ngx-datatable-column>
<ng-template let-column="column" ngx-datatable-header-template>
מרצה
</ng-template>
<ng-template let-row="row" ngx-datatable-cell-template>
<a href="mailto:{{row.lecturerEmail}}">{{row.lecturerName}}</a>
</ng-template>
</ngx-datatable-column>
<ngx-datatable-column>
<ng-template let-column="column" ngx-datatable-header-template>
חוג
</ng-template>
<ng-template let-row="row" ngx-datatable-cell-template>
{{row.hugName}}
</ng-template>
</ngx-datatable-column>
</ngx-datatable>
不再需要 [列] - 将其从模板中删除。
如果您想坚持使用 columns
和 rows
输入,您可以将聚合列添加到行本身。
如果不改变 courses
,属性将如下所示:
const rows = courses.map(course => ({
...course,
eventDetails: `${course.eventName} on ${course.when}`
}))
const columns = [
{ prop: 'eventDetails', name: 'Event', resizable: false },
// the rest of your columns...
]
上面接受的答案对我也有用,谢谢!
有时,如果有人在一列中查找多个属性并且一次只能显示一个值,可以使用以下方法
<ngx-datatable-column name="Test">
<ng-template ngx-datatable-cell-template let-rowIndex="rowIndex" let-value="value" let-row="row">
{{ row.propert1 || row.propert2 }}
</ng-template>
</ngx-datatable-column>
谢谢