您可能误会我的意思了。我把完整代码发一下。
function shopPanel(userObject)
{
this.user = userObject;
this.user.start=0;
this.user.limit=20;
this.mycm = new Ext.grid.ColumnModel([{
header: "名称",
dataIndex: 'merName',
width: 70,
renderer:function(value,p,record)
{
if(record.data["merState"].id==731)
return "<span style='color:red;'>"+value+"</span>";
return value;
}
},{
header: "型号",
dataIndex: 'merModelNo',
width: 70
},{
header: "价格",
dataIndex: 'merPrice',
width: 50
},{
header: "数量",
dataIndex: 'merAmount',
width: 50
},{
header: "拍卖",
dataIndex: 'ifRoupState',
width:20,
renderer:function(value, p, record){
if(value)
return "<span style='color:red'>是</span>";
return "否";
}
},{
header: "热销",
dataIndex: 'merState',
width:20,
renderer:function(value, p, record){
if(value.id==731)
return "<span style='color:red'>是</span>";
return "否";
}
},{
header: "功能",
width:60,
renderer:function(value, p, record){
return "<a href='#'name='upMer'>更新<a> | <a href='#'>删除<a>";
}
}]);
this.mygrid =new Ext.grid.GridPanel( {
border:false,
height:500,
ds:this.mystroe,
cm:this.mycm,
loadMask: true,
viewConfig: {
forceFit:true,
enableRowBody:true,
showPreview:true,
getRowClass : function(record, rowIndex, p, store){
if(this.showPreview){
p.body = '<div class="merItem"><div class="merItemIMG"><img src="'+record.data.merImagesAddress
+'"/></div><dl><dt>商品介绍:</dt><dd>'+
record.data.depict+'</dd></dl><div>';
return 'x-grid3-row-expanded';
}
return 'x-grid3-row-collapsed';
}
},
bbar: new Ext.PagingToolbar({
pageSize: 20,
store:this.mystroe,
displayInfo: true,
displayMsg: '显示第 {0} 条到 {1} 条记录,一共 {2} 条',
emptyMsg: "没有记录",
items:[
'-', {
pressed: true,
enableToggle:true,
text: '描述(隐藏/显示)',
cls: 'x-btn-text-icon details',
toggleHandler:this.toggleDetails,
scope:this
}]
})
});
shopPanel.superclass.constructor.call(this,
{
id:"shopControl",
title:this.user.trueName+"的网店",
iconCls:"shop_icon",
border:false,
closable:true,
autoScroll:true,
layout:"fit",
items:[this.mygrid]
}
);
this.addListener("beforedestroy",
function(){
this.user=null;
if(window.userObject.shopMer)
{
window.userObject.shopMer=null;
}
},this);
this.mycm.defaultSortable = true;
this.mystroe.load({params:{id:this.user.id,start:0,limit:20}});
this.mystroe.on("load",this.mygridRender,this);
};
Ext.extend(shopPanel,Ext.Panel,
{
user:new Object(),
toggleDetails: function (btn, pressed){
var view = this.mygrid.getView();
view.showPreview = pressed;
view.refresh();
},
afterRender : function(){
shopPanel.superclass.afterRender.call(this);
},
mystroe:new Ext.data.Store
({
proxy: new Ext.data.HttpProxy
({
url: '/ctoc/test.do?id='+this.user.id//这里的this会有问题
}),
// create reader that reads the Topic records
reader: new Ext.data.JsonReader
({
root: 'mers',
totalProperty: 'totalCount',
fields: [
{name:'merName',mapping:"merName"},
{name:'merModelNo',mapping:"merModelNo"},
{name: 'merPrice', type: 'float',mapping:"merPrice"},
{name: 'merAmount', type: 'int',mapping:"merAmount"},
{name:'ifRoupState',mapping:"ifRoupState"},
{name:"depict",mapping:"depict"},
{name:"merSort",mapping:"staticDictionaryByMerSortNo"},
{name:"merState",mapping:"staticDictionaryByMerStateNo"},
{name:"merImagesAddress",mapping:"merImagesAddress"},
{name:"id",mapping:"id"},
{name:"shop",mapping:"shop"},
{name:"ifRecommendState",mapping:"ifRecommendState"}
]
})
});
mygridRender:function(stroe,records,options)
{
var upMers = document.getElementsByName("upMer");
for(var i = 0; i < upMers.length;i++)
{
upMers[i].onclick=this.upClickhandler.call(this);
}
},
upClickhandler:function()
{
var othis = this;
return function(e)
{
var record = othis.mygrid.getSelectionModel().getSelected();
var tempWindow = new MerchandiseInfo(record);
tempWindow.show(othis);
}
}
}
);
当我把这个mystore放到构造方法中时,就可以用了