Home
JavaEE
Java GUI
Framework
DHtml
Android
插画
教程下载

ATOM 2.0   RSS 2.0
Add to iGoogle Add to Live.com
  • 今天终于收到金山快盘的邀请码
  • 利用最短ie判断在不同浏览器上播放背景音乐
  • 对插画方面的一点感受与回忆
  • 网上看到的两个死里逃生的图片,记录一下
  • 今天开通了糖果社区,附几个激活码
  • 终于可以实现我的多个微博实时同步了
  • 备案和现场拍照就是对站长们的瞎折腾
  • 对Android在互联网应用开发上的纠结
  • 收藏夹中的书签都没了,决定写一个自已的书签管理器
  • 测试自已整理的本机的webapps客户端发送博文能否成功。
  • 今天开通了糖果社区,附几个激活码
  • 终于可以实现我的多个微博实时同步了
  • 备案和现场拍照就是对站长们的瞎折腾
  • 昨天借用飞姐的佳作做的一个浪漫爱情网页
  • 有几个腾讯微博的邀请码(实时更新)
  • BB的网站移到了GAE-JAVA上了
  • 一个基于GAE Python Web.py和JQuery的留言本程序
  • 类许愿墙的一个告白网站和一个电子书网站
  • Android中用Bitmap获取图片中某个区域的图象
  • 对暴力破解带密码的QQ相册的可行性分析
  • 对淘宝web旺旺版一些通讯接口的研究

ExtJs-GridPanel中两个RowExpander嵌套出现的问题

posted by David Chen at July 23, 2008, 8:55 AM    

如果一个GridPanel g1中使用了RowExpander r1,而在r1中又生成了另一个GridPanel g2,
g2中又使用了RowExpander r2的时候, r2的+,- 的图标的将显示不正确。
原因,在collapse 事件中查看参数 row的parentNode的html
可以看到如下的代码:

在row的TR中嵌有className为x-grid3-row-expander的div, 再仔细看源码, 改变图标只是由
最外层的div的className控制,即.x-grid3-row-expanded或x-grid3-row-collapsed
如果这样的话,第一个RowExpander r1将永远控制第二个RowExpander r2的图标,当r1图标
为+的时候,没论怎样, r2的图标也只能是+, 同理图标-也一样.
要改变这个,就必须修改或重写一些css属性.

1) 定义3个css, 基本上从 grid.css中copy出来
.my_collapsed {
width:100%
height:18px;
background-position:4px 2px;
background-repeat:no-repeat;
background-color:transparent;
background-image:url(./extjs/row-expand-sprite.gif);
}
.my_expanded {
width:100%;
height:18px;
background-position:-21px 2px;
background-repeat:no-repeat;
background-color:transparent;
background-image:url(./extjs/row-expand-sprite.gif);
}
// resourceWeek_c 是我定义的RowExpander r2的id, 自动加到className为x-grid3-row-expander的div的父div中
// 用这个css,可以默认使r2图标加载都只显示+号
.x-grid3-col-resourceWeek_c .x-grid3-row-expander {
background-position:4px 2px;
}
2) 在r2中监听相关 listeners
listeners: {
expand: function(a, rd, b, idx, r) {
var div = (Ext.fly(r).child('tr:nth(1) div.x-grid3-row-expander', true)
|| Ext.fly(r).child('tr:nth(1) div.my_collapsed', true));
if( div ) div.className = 'my_expanded';
// 改变css
},
collapse: function(a, rd, b, idx, r) {
var div = (Ext.fly(r).child('tr:nth(1) div.x-grid3-row-expander', true)
|| Ext.fly(r).child('tr:nth(1) div.my_expanded', true));
if( div ) div.className = 'my_collapsed';
// 改变css
}
}
3) 修改RowExpander的onMouseDown源码,当然不会影响原来的功能
var b = ( t.className == 'x-grid3-row-expander' || t.className == 'my_collapsed' || t.className == 'my_expanded' );
if( b ) ... // 因为修改了div的className,这里也必须要跟着改
4) 效果图
Labels:   ExtJs    DHtml  
Trackback:   http://cwq.iou1314.com/extjs-rowexpander-gridpanel_a334
微博最近更新
[2010-07-31 16:33]    今天下午又将昨天赢的哎齐出来了,郁闷,一进一出,要有入没出才行啊。
[2010-07-31 07:40]    昨晚又去啊泄度开台,呢次赢左差唔多3旧水,下周星期一请假,回郁南去转社保和入党资料。
本站内的任何文章,只代表个人意见或学习所用,如有版权声明,请尊重作者的劳动成果,在转载时请保留原始链接并注明出处。
Power by David's PhpCms, © 2007 - 2010 CWQ.IOU1314.COM All Rights Reserved.