本文介绍了如何在Aurela SlickGrid中合并两列数据的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个带有开始日期和结束日期的Aurela slickgrid表,它很好。后端API响应为odata格式。现在我想创建一个名为Status的新列,Status的计算方式为:

<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>
基本上,上面的那些函数,如doLicenseActivate,是一组执行日期计算的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", formatter: Formatters.dateEuro, sortable: true, filterable: true, minWidth: 100, },
        { id: "Duration", name: "Duration", field: "Duration", formatter:  this.DurationFormatter, sortable: true, filterable: true, minWidth: 100, },
       // make a status column here            
    ];
}

如下所示:

这就是我想要做的,基本上创建一个新的状态列,它使用前两列(开始和结束日期)中的值

推荐答案

只需使用自定义格式化程序,请参阅Custom Formatter - Wiki它具有dataContext,这是整行的Item对象。您可以使用MomentJS来计算和显示&10个月&或";当前许可证&(我猜最后一个是计算和切换/案例)。您可以在自定义格式化程序中做任何您想做的事情,它将在每次网格重新渲染时重新计算,如果您更改另一个单元格的值,它也将重新计算。但您在筛选和排序时可能会遇到问题,在这种情况下,您可能希望不显示筛选器并删除排序。

这篇关于如何在Aurela SlickGrid中合并两列数据的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

11-01 08:06