我做的是嵌套表格,url返回的数据如下:
{'totalSize':7,'list':[{'id':1,'lbmc':'袋牌打印机 ','lbdh':'dpdyj','sbpartid':1,'pj':[[5,'md','棉垫',1],[9,'sd','色带',1], [10,'dyx','电源线',1]]},{'id':2,'lbmc':'针式打印机 ','lbdh':'zsdyj','sbpartid':1,'pj':[[4,'bpdl','扁平电缆',2]]}, {'id':3,'lbmc':'针式打印机','lbdh':'zsdyj','sbpartid':5,'pj':[[2,'cl','齿轮 ',3]]},{'id':4,'lbmc':'电机','lbdh':'dj','sbpartid':5,'pj':[[6,'dj','电机 ',4]]},{'id':5,'lbmc':'工具类','lbdh':'gjl','sbpartid':1,'pj':[]}]}
recordtype怎么设置才能读到?(开始我是让url返回数组读取很正常,但我为了分页读取记录总数改成了json,不知怎么读取每条记录最后数组?)。目前只有第一级有数据第二级grid没有数据。var expander = new Ext.grid.RowExpander({
tpl : new Ext.XTemplate('<div class="detailData">', '', '</div>')
});
expander.on("expand",function(expander,r,body,rowIndex){
//查找 grid
window.testEle=body;
//alert(body.id);
if (Ext.DomQuery.select("div.x-panel-bwrap",body).length==0){
//alert("a");
var data=r.json[4];
var store=new Ext.data.SimpleStore({
// fields: ["class","degrade"]
fields: ["id","pjjc","pjmc","sslb"]
,data:data
});
var cm = new Ext.grid.ColumnModel([
// {header: "科目",dataIndex: 'class',width: 130,hideable:false,sortable:false,resizable:true}
{header: "序号",dataIndex: 'id',width: 130,hideable:false,sortable:false,resizable:true}
,{header: "配件简称",dataIndex: 'pjjc',width: 130,hideable:false,sortable:false,resizable:true}
,{header: "配件名称",dataIndex: 'pjmc',width: 130,hideable:false,sortable:false,resizable:true}
,{header: "所属类别",dataIndex: 'sslb',width: 130,hideable:false,sortable:false,resizable:true}
]);
Ext.DomQuery.select("div.detailData")[0];
var gridChild = new Ext.grid.GridPanel(
{
store:store,
cm:cm,
renderTo:Ext.DomQuery.select("div.detailData",body)[0],
autoWidth:true,
autoHeight:true
}
);
}
});thisServlet="tbrz.myaction";
var StudentGridPanel = function() {
// var stuWindow = new StudentWindow();
var _grid = this;
var recordTypeT = Ext.data.Record.create([{/**$$$$$ */
name : 'id',
type : 'int',
mapping : 'id'
}, {
name : 'lbmc',
type : 'string',
mapping : 'lbmc'
}, {
name : 'lbdh',
type : 'string',
mapping : 'lbdh'
}, {
name : 'sbpartid',
type : 'int',
mapping : 'sbpartid'
}, {
name : 'pj',
// type : 'array',
mapping : 'pj'
}]);
this.store = new Ext.data.Store( {
proxy : new Ext.data.HttpProxy( {
url : thisServlet + '?method=list'
}), // set up the JsonReader
reader : new Ext.data.JsonReader( {
root : 'list',
totalProperty : 'totalSize',
id : 'id'
}, recordTypeT)
});
this.store.load({params:{start:0,limit:pagesize}});
// this.store.load();
var sm = new Ext.grid.CheckboxSelectionModel( {
singleSelect : false
});
this.columns = [
expander,//new Ext.grid.RowNumberer(),
{/**$$$$$ */
id : 'id',
header : "序号",
width : 60,
sortable : true,
dataIndex : 'id'
}, {
header : "配件类别",
width : 75,
sortable : true,
dataIndex : 'lbmc'
}, {
header : "类别名称",
width : 75,
sortable : true,
dataIndex : 'lbdh'
}, {
header : "所属部门",
width : 75,
sortable : true,
dataIndex : 'sbpartid'
}, sm];
{'totalSize':7,'list':[{'id':1,'lbmc':'袋牌打印机 ','lbdh':'dpdyj','sbpartid':1,'pj':[[5,'md','棉垫',1],[9,'sd','色带',1], [10,'dyx','电源线',1]]},{'id':2,'lbmc':'针式打印机 ','lbdh':'zsdyj','sbpartid':1,'pj':[[4,'bpdl','扁平电缆',2]]}, {'id':3,'lbmc':'针式打印机','lbdh':'zsdyj','sbpartid':5,'pj':[[2,'cl','齿轮 ',3]]},{'id':4,'lbmc':'电机','lbdh':'dj','sbpartid':5,'pj':[[6,'dj','电机 ',4]]},{'id':5,'lbmc':'工具类','lbdh':'gjl','sbpartid':1,'pj':[]}]}
recordtype怎么设置才能读到?(开始我是让url返回数组读取很正常,但我为了分页读取记录总数改成了json,不知怎么读取每条记录最后数组?)。目前只有第一级有数据第二级grid没有数据。var expander = new Ext.grid.RowExpander({
tpl : new Ext.XTemplate('<div class="detailData">', '', '</div>')
});
expander.on("expand",function(expander,r,body,rowIndex){
//查找 grid
window.testEle=body;
//alert(body.id);
if (Ext.DomQuery.select("div.x-panel-bwrap",body).length==0){
//alert("a");
var data=r.json[4];
var store=new Ext.data.SimpleStore({
// fields: ["class","degrade"]
fields: ["id","pjjc","pjmc","sslb"]
,data:data
});
var cm = new Ext.grid.ColumnModel([
// {header: "科目",dataIndex: 'class',width: 130,hideable:false,sortable:false,resizable:true}
{header: "序号",dataIndex: 'id',width: 130,hideable:false,sortable:false,resizable:true}
,{header: "配件简称",dataIndex: 'pjjc',width: 130,hideable:false,sortable:false,resizable:true}
,{header: "配件名称",dataIndex: 'pjmc',width: 130,hideable:false,sortable:false,resizable:true}
,{header: "所属类别",dataIndex: 'sslb',width: 130,hideable:false,sortable:false,resizable:true}
]);
Ext.DomQuery.select("div.detailData")[0];
var gridChild = new Ext.grid.GridPanel(
{
store:store,
cm:cm,
renderTo:Ext.DomQuery.select("div.detailData",body)[0],
autoWidth:true,
autoHeight:true
}
);
}
});thisServlet="tbrz.myaction";
var StudentGridPanel = function() {
// var stuWindow = new StudentWindow();
var _grid = this;
var recordTypeT = Ext.data.Record.create([{/**$$$$$ */
name : 'id',
type : 'int',
mapping : 'id'
}, {
name : 'lbmc',
type : 'string',
mapping : 'lbmc'
}, {
name : 'lbdh',
type : 'string',
mapping : 'lbdh'
}, {
name : 'sbpartid',
type : 'int',
mapping : 'sbpartid'
}, {
name : 'pj',
// type : 'array',
mapping : 'pj'
}]);
this.store = new Ext.data.Store( {
proxy : new Ext.data.HttpProxy( {
url : thisServlet + '?method=list'
}), // set up the JsonReader
reader : new Ext.data.JsonReader( {
root : 'list',
totalProperty : 'totalSize',
id : 'id'
}, recordTypeT)
});
this.store.load({params:{start:0,limit:pagesize}});
// this.store.load();
var sm = new Ext.grid.CheckboxSelectionModel( {
singleSelect : false
});
this.columns = [
expander,//new Ext.grid.RowNumberer(),
{/**$$$$$ */
id : 'id',
header : "序号",
width : 60,
sortable : true,
dataIndex : 'id'
}, {
header : "配件类别",
width : 75,
sortable : true,
dataIndex : 'lbmc'
}, {
header : "类别名称",
width : 75,
sortable : true,
dataIndex : 'lbdh'
}, {
header : "所属部门",
width : 75,
sortable : true,
dataIndex : 'sbpartid'
}, sm];
tpl : new Ext.XTemplate('<div class="detailData">', '', '</div>')
// '<div class="detailData">',
// '',
// '</div>'
// )
});
expander.on("expand",function(expander,r,body,rowIndex){
//查找 grid
window.testEle=body;
//alert(body.id);
if (Ext.DomQuery.select("div.x-panel-bwrap",body).length==0){
//alert("a");
var data=[
["数学",100],["语文",151],["英语",121],
];
var store=new Ext.data.SimpleStore({
fields: ["class","degrade"]
,data:data
});
var cm = new Ext.grid.ColumnModel([
{header: "科目",dataIndex: 'class',width: 130,hideable:false,sortable:false,resizable:true}
,{header: "成绩",dataIndex: 'degrade',width: 130,hideable:false,sortable:false,resizable:true}
]);
Ext.DomQuery.select("div.detailData")[0];
var grid = new Ext.grid.GridPanel(
{
store:store,
cm:cm,
renderTo:Ext.DomQuery.select("div.detailData",body)[0],
autoWidth:true,
autoHeight:true
}
);
}
});//var sm=new Ext.grid.CheckboxSelectionModel({singleSelect:true});
var cm = new Ext.grid.ColumnModel([
expander
,{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}
]); var grid = new Ext.grid.GridPanel(
{
id:'testgrid',
// id:'Maintenance',
store:storeTest,
cm:cm,
// renderTo:"grid1",
width:780,
autoHeight:false,
height:300,
listeners:{},
plugins:[expander]
}
);