如何解决如何在 aurelia slickgrid 中合并来自两列的数据
我有一个带有开始日期和结束日期的 aurelia slickgrid 表,这很好。后端 api 响应采用 odata 格式。现在我想创建一个名为状态的新列,状态计算为:
<td class="col-xs-4 col-md-2">
<div>
<div if.bind="doesLicenseActivate(lic)">
Activates on ${lic.DateStart}
</div>
<div if.bind="didLicenseEnd(lic)">
Ended on ${lic.DateEnd}
</div>
<div if.bind="isLicenseCurrentlyActive(lic)">
Current License
</div>
<div if.bind="lic.IsCanceled">
Cancelled on ${lic.DateEnd}
</div>
</div>
基本上,上面的那些功能,例如 dosLicenseActivate 是一堆 Moment.js 函数做一些日期计算。我的专栏看起来像:
/* Define grid Options and Columns */
private defineMembershipGrid() {
return this.columnDefinitionsMembershipHistory = [
{ id: "DateStart",name: "Start Date",field: "DateStart",formatter: Formatters.dateEuro,sortable: true,filterable: true,minWidth: 100,},{ id: "DateEnd",name: "End Date",field: "DateEnd",{ id: "Duration",name: "Duration",field: "Duration",formatter: this.DurationFormatter,// make a status column here
];
}
这就是我想要做的,基本上是创建一个新的状态列,它使用前两列(开始和结束日期)中的值
解决方法
只需使用自定义格式器,请参阅 Custom Formatter - Wiki 它具有 dataContext
,它是整行的项目对象。您可以使用 MomentJS 进行计算并显示“10 个月”或“当前许可证”(我猜最后一个将是计算和开关/案例)。您可以在自定义格式器中做任何您想做的事情,每次网格重新渲染时都会重新计算,如果您更改另一个单元格的值,它也会重新计算。您可能在过滤和排序时遇到问题,在这种情况下,您可能不想显示过滤器并删除排序。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。