【问题标题】:ExtJS6: Passing entire object or 2 fields in gridpanel's columnsExtJS6:在网格面板的列中传递整个对象或 2 个字段
【发布时间】:2016-09-02 15:54:31
【问题描述】:

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

这里是sn-p:

{
  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;
  }
}

【问题讨论】:

    标签: javascript extjs extjs6


    【解决方案1】:

    渲染器函数有更多的参数。

    您可以从记录中获取所有字段。

    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 替换为您的其他字段值之一或实际的默认值。

    【讨论】:

      【解决方案2】:

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

      你也可以看看Ext.data.field.Field中的convert方法

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2022-08-17
        • 2013-12-26
        • 2023-03-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多