javascript - 将组件渲染到摘要行

标签 javascript extjs

如何有效地将组件渲染到网格的摘要行中?

summaryRenderer 仅返回原始值,然后将其放入模板中。所以这是我的摘要渲染器:

summaryRenderer:function(summaryValue, values, dataIndex) {
    return summaryValue + '<br><div id="btn-' + dataIndex + '">';
}

并且不知何故我必须在渲染器完成后插入一个组件。我曾尝试在 store.load 回调中执行此操作,但渲染器仅在加载后完成。

me.getStore().load({
  callback:function(records, operation, success) {
    Ext.each(me.getColumns(),function(column) {
      Ext.create('Ext.Button',{
        text:'Use this column',
        handler:function() {
          me.createEntryFromColumn(column);
        }
      }).render('btn-'+column.dataIndex);
      // throws "Uncaught TypeError: Cannot read property 'dom' of null", 
      // because the div is not yet in the dom.
    });     
  }
});

我可以附加到哪个事件,只有在 summaryRenderer 完成后才会触发?

最佳答案

也许你可以这样做:

init: function () {
    this.control({
        'myGrid': {
            afterrender: this.doStuff
        }
    });
},

doStuff: function (myGrid) {
    var self = this;

    myGrid.getStore().on({
        load: function (store, records) {
            // do stuff
        }
    });

    myGrid.getStore().load();
}

关于javascript - 将组件渲染到摘要行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35018477/

相关文章:

javascript - JS如何改变构造函数值

javascript - Material design Lite - 导航锁定到位

javascript - 使用 Ext.form.field.HtmlEditor 右键单击​​上下文菜单

javascript - Ext JS 动态存储插入无法读取未定义的属性 'isModel'

javascript - 将对象加载到表单中

javascript - 组件 : how to have all items selected by default? 中的 v-data-table

javascript - 如何使用 Materializecss 在同一个 div 上显示两个工具提示?

javascript - 我如何处理数据 View 中项目的鼠标点击

css - IcoMoon 加载不正确

javascript - 如何在上下文菜单项上打开 default_popup 单击 chrome 扩展