ExtJS6:在gridpanel的列中传递整个对象或2个字段

时间:2016-09-02 15:54:32

标签: javascript extjs extjs6

在构建GridPanel的列值时,如果该字段没有值,我需要查找字段,它应该查找另一个字段并将其呈现为列值。现在按照ExtJS6 docs,我们可以将单个数据属性传递给dataIndex并通过渲染函数模拟值。但是如果提到的字段没有值,则没有提及如何使用fallback属性。

这是片段:

{
  text: 'Title',
  flex: 1,
  dataIndex: '<how-to-pass-object-itself-or-two-fields>',
  renderer: function(value, metaData) {
    return '<i class="fa fa-bars"></i>' +  value;
  }
}

2 个答案:

答案 0 :(得分:2)

渲染器功能有更多的参数。

您可以抓取记录中的所有字段。

var DEFAULT_VALUE = '';

{
    dataIndex : 'a' // or could be 'b', or 'c' or etc…
    renderer: function(value, metaData, record, rowIndex, colIndex, store, view) {
        var fieldA = record.get('a');
        var fieldB = record.get('b');
        var fieldC = record.get('c');

        // …

        return value || DEFAULT_VALUE; // ?
    }
}

在return语句中,只需将DEFAULT_VALUE替换为您的其他字段值或实际默认值。

答案 1 :(得分:1)

如果您的网格在客户端是可排序的,那么在使用renderer在列中呈现不同的记录值时应该小心。

您还可以查看Ext.data.field.Field

中的convert方法