ExtJS 4 GridView - 如何获取单元格的td或div?

Lio*_*han 6 grid view cell extjs4

在GridPanel中,我们都知道我们可以renderer在列配置中指定自定义单元格.现在有一个特殊情况我需要构建一个自定义的可视化进度条(画布)以绘制到单元格中,我的问题是如何获取el单元格

在渲染器回调,可用值是value,metadata,record,rowIndex,columnIndex,store,和view.我已经尝试过view.getNode或者view.getCell没有运气.

提前谢谢你!

/莱昂内尔

编辑

一些进一步的矿区后,我意识到我的节点实际上不是由渲染器被调用,也就是说,时间准备view.getNodeview.getCell实际上是在工作,但延迟(返回null所有的时间)

解决方法是setTimeout在节点准备好后使用和呈现元素.这绝对不是处理案件的最佳方式.无论如何欢迎任何建议:)

/莱昂内尔

Lio*_*han 8

事实证明,这个问题的答案是用来setTimeout模拟一些延迟,以便在延迟一段时间后正确添加节点.

这是我的 renderer

renderer = function (v, meta, rec, r, c, store, view) {

    setTimeout(function() {
        var row = view.getNode(rec);

        //Capturing the el (I need the div to do the trick)
        var el = Ext.fly(Ext.fly(row).query('.x-grid-cell')[c]).down('div');

        //All other codes to build the progress bar
    }, 50);
};
Run Code Online (Sandbox Code Playgroud)

丑陋,但它的工作原理.如果没有其他答案,我会在接下来的两天内接受它作为有效答案.

干杯

/莱昂内尔