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

Extjs how to get specify element after render in grid panel

本文关键字:获取 取指 元素 网格 扩展      更新时间:2023-09-26

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

我有一个网格列,想要实现数据评级。我使用 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>'
    }
}

我想你必须看看CD提到的评级小部件。

如果您仍然想自己实现评级,我想您必须为它编写自定义组件,使用网格存储中的评级数据进行设置,并引用renderer中的某一行。

如果您仍然想使用 div 自行实现评级,您可以执行以下操作来选择data-ratingdiv:

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

渲染器函数在调用时会传递几个参数。如文档中所述,其中之一是记录。您可以使用此参数提取当前行的记录。您可以像访问模型字段 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>';
}