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

在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);
};

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

干杯

/莱昂内尔

相关文章

Android性能优化——之控件的优化 前面讲了图像的优化,接下...
前言 上一篇已经讲了如何实现textView中粗字体效果,里面主要...
最近项目重构,涉及到了数据库和文件下载,发现GreenDao这个...
WebView加载页面的两种方式 一、加载网络页面 加载网络页面,...
给APP全局设置字体主要分为两个方面来介绍 一、给原生界面设...
前言 最近UI大牛出了一版新的效果图,按照IOS的效果做的,页...