Rally网格列渲染器更改onUpdate

时间:2013-07-19 18:15:36

标签: extjs rally

我有一个拉力网格,我正在填充数据和一些自定义列。其中一列我想成为投资组合项目的月份或季度的纯文本表示,基于其计划的开始和结束日期:

{
    text: 'Date Range',
    dataIndex: 'PlannedStartDate',
    renderer: function(value, meta, record) {
        var date = new Date(value);
        return App._getSpan(new Date(record.data.PlannedStartDate), new Date(record.data.PlannedEndDate));
}

_getSpan()方法有效,当页面加载时,网格填充得很好。但是,当我在保存更改时对网格中显示的其他字段之一(所有者,名称等)进行内联编辑时,记录会更新并且不会获取PlannedStartDate和PlannedEndDate字段,因此当我调用时

new Date()

在它们上面,它将时钟转回时间0(1969年12月31日)。

我对此的混乱解决方案是检查是否在渲染器函数中设置了开始日期和结束日期,如果没有,则使用另一个查询通过其ID查找我要查找的对象并获取所有必要信息。我开发的查询有一个错误,并且出于某种原因,这意味着当我更改其他字段时,它会保存状态但不会尝试使用错误数据再次呈现此列!

在你的代码中出现错误以使其工作是非常直观的 - 这里发生了什么?

1 个答案:

答案 0 :(得分:0)

解决方案是使用record.raw而不是record.data - raw中的信息保持不变

{
    text: 'Date Range',
    dataIndex: 'PlannedStartDate',
    renderer: function(value, meta, record) {
        var date = new Date(value);
        return App._getSpan(new Date(record.raw.PlannedStartDate), new Date(record.raw.PlannedEndDate));
}