【问题标题】:how to combine data from two columns in aurelia slickgrid如何组合 aurelia slickgrid 中两列的数据
【发布时间】:2021-06-16 17:17:15
【问题描述】:

我有一个带有开始日期和结束日期的 aurelia 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>

基本上,上面的那些函数,比如 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", 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            
    ];
}

它是这样的:

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

【问题讨论】:

    标签: aurelia slickgrid angular-slickgrid


    【解决方案1】:

    只需使用自定义格式化程序,请参阅 Custom Formatter - Wiki 它有 dataContext 这是整行的项目对象。您可以使用 MomentJS 进行计算并显示“10 个月”或“当前许可证”(我猜最后一个是计算和开关/案例)。您可以在自定义格式化程序中做任何您想做的事情,每次重新渲染网格时都会重新计算它,如果您更改另一个单元格的值,它也会重新计算。您可能无法过滤和排序,在这种情况下,您可能不想显示过滤器并删除排序。

    【讨论】:

    • 谢谢,它成功了,这就是我使用自定义格式化程序的方式:StatusFormatter(row, cell, value, columnDef, dataContext) { const lic = dataContext as License; if(!lic.IsCanceled &amp;&amp; Moment(lic.DateStart).isAfter(Moment.now())) { // do some action } else{ return "Status not found!"; } }
    猜你喜欢
    • 2021-10-11
    • 1970-01-01
    • 2019-03-25
    • 2021-04-03
    • 1970-01-01
    • 1970-01-01
    • 2011-10-06
    • 2022-11-13
    相关资源
    最近更新 更多