Extjs Rally grid列渲染器更改更新

Extjs Rally grid列渲染器更改更新,extjs,rally,Extjs,Rally,我有一个rallygrid,我正在其中填充数据和一些自定义列。我希望其中一列是基于计划开始和结束日期与投资组合项目关联的月份或季度的纯文本表示: { text: 'Date Range', dataIndex: 'PlannedStartDate', renderer: function(value, meta, record) { var date = new Date(value); return App._getSpan(new Da

我有一个rallygrid,我正在其中填充数据和一些自定义列。我希望其中一列是基于计划开始和结束日期与投资组合项目关联的月份或季度的纯文本表示:

{
    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查找对象并获取所有必要的信息。我开发的查询有一个错误,出于某种原因,这意味着当我更改其他字段时,它将保存状态,但不会尝试再次使用错误数据呈现此列


但是,在代码中出现错误以使其正常工作是非常违反直觉的-这是怎么回事?

解决方案是使用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));
}