首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当labelFunction的结果发生变化时,如何使AdvancedDataGrid重新显示其标签?

当labelFunction的结果发生变化时,如何使AdvancedDataGrid重新显示其标签?
EN

Stack Overflow用户
提问于 2010-04-01 05:50:56
回答 2查看 375关注 0票数 0

我有一个带有自定义标签函数的AdvancedDataGrid,它的值可以根据其他表单状态而改变(具体地说,有一个下拉列表可以选择某些列的时间显示格式)。

现在,我有这个labelFunction:

代码语言:javascript
复制
internal function formatColumnTime(item: Object, column: AdvancedDataGridColumn): String {
    var seconds: Number = item[column.dataField];
    return timeFormat.selectedItem.labelFunction(seconds);
}

internal function formatTimeAsInterval(time: Number): String {
    if (isNaN(time))
        return "";

    var integerTime: int = Math.round(time);

    var seconds: int = integerTime % 60;
    integerTime = integerTime / 60;
    var minutes: int = integerTime % 60;
    var hours: int = integerTime / 60;

    return printf("%02d:%02d:%02d", hours, minutes, seconds);
}

internal function formatTimeAsFractions(time: Number): String {
    if (isNaN(time))
        return "";

    var hours: Number = time / 3600.0;
    return new String(Math.round(hours * 100) / 100);
}

..。timeFormat对象是一个组合框,其中包含labelFunction属性为formatTimeAsFractionsformatTimeAsInterval的项。

具有时间格式的列的labelFunction值为formatColumnTime,因为提取该函数中的秒数并将其传递给格式化程序可以使应用程序更具可测试性。

因此,当timeFormat.selectedItem值改变时,我想强制我的网格重新计算这些列的标签。我必须对它调用什么方法?invalidateProperties()不起作用,所以这是不可能的。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-04-01 23:52:26

我已经走了直接使用组合框的selectedItem作为labelFunction的路线。它不是那么优雅的可测试性,但它是有效的。

票数 0
EN

Stack Overflow用户

发布于 2010-04-01 06:08:40

您有没有尝试刷新dataProvider?如果它是一个ArrayCollection,那么它应该可以工作。否则,请尝试invalidateDisplayList().

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2556721

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档