Extjs如何在网格面板中渲染后获取指定元素

时间:2016-01-18 07:25:15

标签: javascript extjs extjs5

嗨,我知道这个问题标题有点模糊。

我有一个网格列,想要实现数据评级。 我使用renderer并返回div但现在我不知道要获取元素。

我的代码如下

{
    text: 'rank',
    dataIndex: 'rank',
    flex: 1,
    tdCls: 'column-rank',
    renderer: function(value) {
        return '<div class=rating>' +
                    '<div data-rating="1"></div>' +
                    '<div data-rating="2"></div>' +
                    '<div data-rating="3"></div>' +
                    '<div data-rating="4"></div>' +
                    '<div data-rating="5"></div>' +
                '</div>'
    }
}

2 个答案:

答案 0 :(得分:0)

我想你必须看一下CD上提到的rating widget

如果您仍想自行实施评级,我猜您必须为其编写自定义组件,请使用网格商店中的评级数据设置它并引用renderer中的某一行。

如果您仍想使用div自行实施评分,可以执行以下操作来选择data-rating div:

Ext.query('div[data-rating="5"]', myRowComponent.getEl());

答案 1 :(得分:0)

renderer函数在调用时会传递几个参数。 如文档中所述,其中之一是记录。 您可以使用此参数来提取当前行的记录。您可以像访问模型字段record.get('fieldName')一样访问记录字段。 伪代码示例:

renderer: function(value, metaData, record, rowIndex, colIndex) {
  var fieldValue1 = record.get('fieldName1');
  return '<div class=rating>' +
            '<div data-rating="1">' + fieldValue1 + '</div>' +
            ...
          '</div>';
}