在GridPanel中,我们都知道我们可以在列配置中指定渲染器以具有自定义单元格.现在有一个特殊的情况,我需要建立一个自定义的视觉进度条(画布),以绘制到一个单元格,我的问题是如何获得细胞的el?
在渲染器回调中,可用值包括value,Metadata,record,rowIndex,columnIndex,store和view.我已经尝试过view.getNode或view.getCell但没有运气.
提前谢谢你!
/莱昂内尔
编辑
经过一些进一步的挖掘后,我意识到我的节点在调用渲染器时实际上还没有准备好,也就是说,view.getNode和view.getCell实际上正在工作,但是延迟了(它一直返回null)
解决方法是使用setTimeout并在节点准备好后呈现元素.这绝对不是处理案件的最佳方式.无论如何欢迎任何建议:)
/莱昂内尔
解决方法
事实证明,这个问题的答案是使用setTimeout模拟一些延迟,以便在延迟一段时间后正确添加节点.
这是我的渲染器
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); };
丑陋,但它的工作原理.如果没有其他答案,我会在接下来的两天内接受它作为有效答案.
干杯
/莱昂内尔