用ext grid展示数据在主窗口显示的是按表里的一个字段分组展示的,点击一条记录的详细信息跳出子窗口保这一组的记录详细分页展示。
[b]问题补充:[/b]
to yourgame:两个都可以,只要实现了效果,不过主窗口肯定是ext的grid
[b]问题补充:[/b]
to 汪兆铭:有个问题window里grid没渲染,应该调用窗口的show方法后,会自动渲染的
[b]问题补充:[/b]
to 汪兆铭:跳出是一个ext window,grid是放在window里的,没有div之类的东西的
[b]问题补充:[/b]
to 汪兆铭:window代码:
[code="java"]
var win = new Ext.Window({
title : 'infoWindow',
closable : true,
width : 660,
height : 435,
// border:false,
plain : true,
draggable : true,
collapsible : true,
closeAction : 'hide',
modal:true,
items : [queryform,infogrid]
}
)
[/code]
grid代码:
[code="java"]
var infogrid = new Ext.grid.GridPanel({
region : 'center',
title : '发送电文详细信息',
// height : 220,
trackMouseOver : false,
loadMask : {
msg : '正在加载数据,请稍后.....'
},
ds : infostore,
cm : infocm,
sm : new Ext.grid.RowSelectionModel(),
bbar : infobbar,
viewConfig : {
forceFit : true
}
// buttons : [{
// text : '添加电文',
// id : 'addbtn',
// handler : function() {
// addclick();
// }
// }]
});
[/code]
1、添加行点击事件
grid.addListener( 'rowclick', function( g, rowIdx, eobj )
2、拿到点击的记录
var record = store的getAt(rowIdx)
取其分组的列的值:var v = record.get("分组的field")
3、从store中过滤出来所有分组的field==v的record。添加到新建的store中.
var newstore = new Ext.data.Store();
store.each( function(r)
{
if(r.get("分组的field") == v) // v是第二部得到的
newstore.add(r);
});
4、新建一个window,添加一个GridPanel,和前面的Group的Grid一样的ColumnModel,
然后让 store: newstore;即可
你说的是html的window 还是Ext.Window??
注意grid的id
没有被其他div引用~之类的
你可以用firebug查看下。
window 代码发出来
win的items下 容纳了2个容器。
我建议你 用以个 panel column布局 吧那个form 与 grid先add进去
最后 win在add panel
记得column布局
下的元素 要有region属性否则也出不来