Extjs中引用RowExpander插件,当选择嵌套的表格的某一列,外表格对应的那一列也被选中了,坐等大神求解。。 extjs rowExpander嵌套表格 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我把代码贴在这里,各位路过的可以看下,问题在哪里,<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>test</title> <link rel="stylesheet" type="text/css" href="..\js\extjs\resources\css\ext-all.css" /><script type= "text/javascript" src="..\js\extjs\adapter\ext\ext-base.js"></script><script type= "text/javascript" src= "..\js\extjs\ext-all.js"></script><script type="text/javascript" src="..\js\extjs\CN.js"></script><script type="text/javascript" src="..\js\extjs\RowExpander.js"></script><script type="text/javascript">Ext.onReady(function(){ var testData=[ ["lugreen","男",26,[["数学",100],["语文",150]]] , ["lisi","男",25,[["数学",100],["语文",150]]] , ["zhangsan","男",27,[["数学",120],["语文",158],["数学",120],["语文",158],["数学",120],["语文",158],["数学",120],["语文",158],["数学",120],["语文",158]]], ["zhangsan","男",27,[["数学",120],["语文",158]]] , ["zhangsan","男",27,[["数学",120],["语文",158]]] , ["zhangsan","男",27,[["数学",120],["语文",158]]] , ["zhangsan","男",27,[["数学",120],["语文",158]]] , ["zhangsan","男",27,[["数学",120],["语文",158]]] ];// storeTest= new Ext.data.SimpleStore({ fields: ["name","sex","age","grade"], data: testData }); var expander = new Ext.grid.RowExpander({ tpl : new Ext.XTemplate('<div class="detailData">','','</div>'), expandOnDblClick:false //selectRowOnExpand:false, //expandOnClick:false }); //添加嵌套表格 expander.on("expand",function(expander,r,body,rowIndex){ window.testEle=body; //alert(body.id); var data=r.json[3]; var store=new Ext.data.SimpleStore({ fields: ["class","degrade"], data:data }); var sm=new Ext.grid.CheckboxSelectionModel({singleSelect:false}); var cm = new Ext.grid.ColumnModel([ sm, {header: "科目", dataIndex: 'class', width: 130, hideable:false, sortable:false, resizable:true }, {header: "成绩", dataIndex: 'degrade', width: 130, hideable:false, sortable:false, resizable:true, editor:new Ext.grid.GridEditor(new Ext.form.TextField({allowBlank:false})) }]); Ext.DomQuery.select("div.detailData")[0]; var grid = new Ext.grid.EditorGridPanel({ store:store, cm:cm, sm:sm, renderTo:Ext.DomQuery.select("div.detailData",body)[0], autoWidth:true, autoHeight:true }); }); var cm1 = new Ext.grid.ColumnModel([ {header: "姓名",dataIndex: 'name',width: 50,hideable:false,sortable:false}, {header: "性别",dataIndex: 'sex',width: 130,hideable:false,sortable:false,resizable:true}, {header: "年龄",dataIndex: 'age',width: 130,hideable:false,sortable:false,resizable:true , editor:new Ext.grid.GridEditor(new Ext.form.TextField({allowBlank:false})) }, expander ]); var grid1 = new Ext.grid.EditorGridPanel({ id:'testgrid', store:storeTest, cm:cm1, renderTo:"grid1", width:780, listeners:{}, autoHeight:false, height:400, plugins:expander });});</script><style type="text/css">#div2 h2 { font-weight:200; font-size:12px;}.c1 h2 { font-weight:200;}</style></head><body><div id="grid1"> </div><div id="grid2"> </div></body></html> grid.on( {'mouseover' : function(e) {e.stopPropagation(); },'mouseout' : function(e) {e.stopPropagation(); }});grid.afterMethod("processEvent", function(n, e) {e.stopPropagation();});这样就可以了,你参考的那个例子很不完善,如果可以,建议你还是别用表格嵌套了。 网页链接错误 如何解决ExtJS Grid无法显示带html标签的Json数据?? 根据时间改变css 求救:怎么才能把做的二级联动菜单跟数据库相关联 鼠标停止一定时间,页面自动返回到指定页面 求助js文件操作问题,高手进! 有关日期对象date的问题,见内 当点击select控件,鼠标指针停在select控件的某一个option选项时,触发的什么事件? 请问怎么理解 container的概念 Chrome插件开发,比较简单的问题 jQuery动态添加表格时,发现标签丢失的情况,具体代码如下 局域网内使用地图
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>test</title>
<link rel="stylesheet" type="text/css" href="..\js\extjs\resources\css\ext-all.css" />
<script type= "text/javascript" src="..\js\extjs\adapter\ext\ext-base.js"></script>
<script type= "text/javascript" src= "..\js\extjs\ext-all.js"></script>
<script type="text/javascript" src="..\js\extjs\CN.js"></script>
<script type="text/javascript" src="..\js\extjs\RowExpander.js"></script><script type="text/javascript">
Ext.onReady(function(){
var testData=[
["lugreen","男",26,[["数学",100],["语文",150]]] ,
["lisi","男",25,[["数学",100],["语文",150]]] ,
["zhangsan","男",27,[["数学",120],["语文",158],["数学",120],["语文",158],["数学",120],["语文",158],["数学",120],["语文",158],["数学",120],["语文",158]]],
["zhangsan","男",27,[["数学",120],["语文",158]]] ,
["zhangsan","男",27,[["数学",120],["语文",158]]] ,
["zhangsan","男",27,[["数学",120],["语文",158]]] ,
["zhangsan","男",27,[["数学",120],["语文",158]]] ,
["zhangsan","男",27,[["数学",120],["语文",158]]]
];
//
storeTest= new Ext.data.SimpleStore({
fields: ["name","sex","age","grade"],
data: testData
}); var expander = new Ext.grid.RowExpander({
tpl : new Ext.XTemplate('<div class="detailData">','','</div>'),
expandOnDblClick:false
//selectRowOnExpand:false,
//expandOnClick:false });
//添加嵌套表格
expander.on("expand",function(expander,r,body,rowIndex){
window.testEle=body;
//alert(body.id);
var data=r.json[3];
var store=new Ext.data.SimpleStore({
fields: ["class","degrade"],
data:data
});
var sm=new Ext.grid.CheckboxSelectionModel({singleSelect:false});
var cm = new Ext.grid.ColumnModel([
sm,
{header: "科目",
dataIndex: 'class',
width: 130,
hideable:false,
sortable:false,
resizable:true
},
{header: "成绩",
dataIndex: 'degrade',
width: 130,
hideable:false,
sortable:false,
resizable:true,
editor:new Ext.grid.GridEditor(new Ext.form.TextField({allowBlank:false}))
}]);
Ext.DomQuery.select("div.detailData")[0];
var grid = new Ext.grid.EditorGridPanel({
store:store,
cm:cm,
sm:sm,
renderTo:Ext.DomQuery.select("div.detailData",body)[0],
autoWidth:true,
autoHeight:true
});
});
var cm1 = new Ext.grid.ColumnModel([
{header: "姓名",dataIndex: 'name',width: 50,hideable:false,sortable:false},
{header: "性别",dataIndex: 'sex',width: 130,hideable:false,sortable:false,resizable:true},
{header: "年龄",dataIndex: 'age',width: 130,hideable:false,sortable:false,resizable:true ,
editor:new Ext.grid.GridEditor(new Ext.form.TextField({allowBlank:false}))
},
expander
]); var grid1 = new Ext.grid.EditorGridPanel({
id:'testgrid',
store:storeTest,
cm:cm1,
renderTo:"grid1",
width:780,
listeners:{},
autoHeight:false,
height:400,
plugins:expander
});
});
</script>
<style type="text/css">
#div2 h2 {
font-weight:200;
font-size:12px;
}
.c1 h2 {
font-weight:200;
}
</style>
</head>
<body>
<div id="grid1">
</div>
<div id="grid2">
</div></body>
</html>
'mouseover' : function(e) {
e.stopPropagation();
},
'mouseout' : function(e) {
e.stopPropagation();
}
});
grid.afterMethod("processEvent", function(n, e) {
e.stopPropagation();
});
这样就可以了,你参考的那个例子很不完善,如果可以,建议你还是别用表格嵌套了。