ExtJs 4.2 render 问题

heng721 2014-11-12 02:02:43

var grid = Ext.create('Ext.grid.Panel', {
......
......
......
columns:[{
text: 'ID',
sortable: true,
dataIndex: 'personID',
groupable: false,
width: 130
}, {
text: '数据',
dataIndex: 'data',
width: 200,
groupable: false,

renderer:MyRender,
listeners:{
'xxxxxxx': MyAfter
}

}]
.....
.....
function MyRender(value, cellmeta, record, rowIndex, columnIndex, store)
{
return '<div id="'+rowIndex+'"></div>';
}

function MyAfter(。。。若干参数。。。)
{
var chart = new .....
问题: chart 中有renderto 属性,我需要给一个div 的 id。 我怎么才能拿到 MyRender中 div 的 id 呢?
}


现在需要在“数据”这一列中,每个单元格都是一张数据图。
我的思路就是 render时,创建一个div,id为行号。
然后,响应某个事件,把图绘制到这个div里。尝试了好几个事件,都拿不到这个id,因为html里还没有我创建的div。

我有三条数据,使用了 afterrender 事件, 调试现象:
断点进入了MyAfter ,我查看了下参数,是关于该列头的绘制,即‘数据’这个列头。
断点进入了 MyRender, 创建了 <div id='0'></div>
断点进入了 MyRender, 创建了 <div id='1'></div>
断点进入了 MyRender, 创建了 <div id='2'></div>
这个afterrender原来是针对的这个列头,我的三行数据render后,不会进入afterrender。

我又试了 以下:

var grid = Ext.create('Ext.grid.Panel', {
......
......
......
columns:[{
text: 'ID',
sortable: true,
dataIndex: 'personID',
groupable: false,
width: 130
}, {
text: '数据',
dataIndex: 'data',
width: 200,
groupable: false,

renderer:MyRender,
}],

//我把listeners 拿出来,响应viewready
listeners:{
'viewready': MyAfter
}


这时,确实能通过id找到我的div,图也能绘制出来,但是这个事件只会产生一次,
因此我只要收缩行,再展开行,我的图就没有了,也就是我的图又被render成了<div>,但这次可没有viewready再供我重绘我的图。


我要怎么做呢??
...全文
134 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
Go 旅城通票 2014-11-13
  • 打赏
  • 举报
回复
viewready( this, eOpts ) this : Ext.panel.Table 通过this对象,down方法查找对象
heng721 2014-11-13
  • 打赏
  • 举报
回复
没人回复,我怎么结贴啊。。。。。。。。。。。。

87,922

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧