是这样的,因为程序需要现在有一个store,代码如下
//项目环节列表
var lsm = new Ext.grid.CheckboxSelectionModel({handelMouseDown:Ext.emptyFn});//必须每个列表的都不一样
var lcmt = new Ext.grid.ColumnModel([lsm,
{header:"编号",dataIndex:"link_id",width:50},
{header:"时间",dataIndex:"link_time",width:200},
{header:"项目环节",dataIndex:"link",width:150},
{header:"项目状态",dataIndex:"link_state",width:120},
{header:"操作人",dataIndex:"link_person",width:100},
{header:"描述",dataIndex:"link_description",width:120},
{header:"项目id",dataIndex:"project_id",hidden:true}
]);
var proxy = new Ext.data.HttpProxy({url:"/project/link/Cjy_findAll.do?pid="+pid+""});
ldst = new Ext.data.Store({
proxy:new Ext.data.HttpProxy({url:"/project/link/Cjy_findAll.do?pid="+pid+""}),
reader:new Ext.data.JsonReader({totalProperty:'pageCount',root:'llist'},
[
{name:"link_id"},
{name:"project_id"},
{name:"link_time"},
{name:"link"},
{name:"link_state"},
{name:"link_person"},
{name:"link_description"}
])
});
ldst.load({params:{start:0}});
pid是从上面传值过来的,然后又一个gridpanel去接受这个store,代码如下
//项目环节gridpanel开始
var lgridpanel=new Ext.grid.GridPanel({
frame:true,
stripeRows:true,//True表示使用不同颜色间隔行
xtype:'grid',
bodyStyle:'width:100%',
autoWidth:true,
width:Ext.get('lgridpanel').getWidth(),
height:Ext.get('lgridpanel').getHeight(),
id:'lgrid',
loadMask:true,
store:ldst,
sm:lsm,
cm:lcmt,
bbar:new Ext.PagingToolbar({
pageSize:100,
store:ldst,
displayInfo:true,
displayMsg:'显示第{0}条到第{1}条数据,共{2}条',
emptyMsg:"没有您要查找的数据"
}),
tbarStyle:'text-align:left;',
tbar:[{
id:'ladd',
text:'新增',
iconCls:'toolbar_add',
handler:ladd //下面JS方法的名字
},'-',{
id:'lupdate',
text:'修改',
iconCls:'toolbar_edit',
handler:lupdate
}
]
});
lgridpanel.render("lgridpanel");
//项目环节gridpanel结束
就是这遇到问题了,如果pid改变,那么store内的值就会改变,后台向前台传值没问题,但是gridpanel显示有问题
用火狐测试,pid=2时显示的值,完全没问题当pid=1时
grid还是这样没有变化求解决方法....extjs3.2版本的Ext JSjavascript
//项目环节列表
var lsm = new Ext.grid.CheckboxSelectionModel({handelMouseDown:Ext.emptyFn});//必须每个列表的都不一样
var lcmt = new Ext.grid.ColumnModel([lsm,
{header:"编号",dataIndex:"link_id",width:50},
{header:"时间",dataIndex:"link_time",width:200},
{header:"项目环节",dataIndex:"link",width:150},
{header:"项目状态",dataIndex:"link_state",width:120},
{header:"操作人",dataIndex:"link_person",width:100},
{header:"描述",dataIndex:"link_description",width:120},
{header:"项目id",dataIndex:"project_id",hidden:true}
]);
var proxy = new Ext.data.HttpProxy({url:"/project/link/Cjy_findAll.do?pid="+pid+""});
ldst = new Ext.data.Store({
proxy:new Ext.data.HttpProxy({url:"/project/link/Cjy_findAll.do?pid="+pid+""}),
reader:new Ext.data.JsonReader({totalProperty:'pageCount',root:'llist'},
[
{name:"link_id"},
{name:"project_id"},
{name:"link_time"},
{name:"link"},
{name:"link_state"},
{name:"link_person"},
{name:"link_description"}
])
});
ldst.load({params:{start:0}});
pid是从上面传值过来的,然后又一个gridpanel去接受这个store,代码如下
//项目环节gridpanel开始
var lgridpanel=new Ext.grid.GridPanel({
frame:true,
stripeRows:true,//True表示使用不同颜色间隔行
xtype:'grid',
bodyStyle:'width:100%',
autoWidth:true,
width:Ext.get('lgridpanel').getWidth(),
height:Ext.get('lgridpanel').getHeight(),
id:'lgrid',
loadMask:true,
store:ldst,
sm:lsm,
cm:lcmt,
bbar:new Ext.PagingToolbar({
pageSize:100,
store:ldst,
displayInfo:true,
displayMsg:'显示第{0}条到第{1}条数据,共{2}条',
emptyMsg:"没有您要查找的数据"
}),
tbarStyle:'text-align:left;',
tbar:[{
id:'ladd',
text:'新增',
iconCls:'toolbar_add',
handler:ladd //下面JS方法的名字
},'-',{
id:'lupdate',
text:'修改',
iconCls:'toolbar_edit',
handler:lupdate
}
]
});
lgridpanel.render("lgridpanel");
//项目环节gridpanel结束
就是这遇到问题了,如果pid改变,那么store内的值就会改变,后台向前台传值没问题,但是gridpanel显示有问题
用火狐测试,pid=2时显示的值,完全没问题当pid=1时
grid还是这样没有变化求解决方法....extjs3.2版本的Ext JSjavascript
先 在gridpanel里监听下store的状态。,
listeners: {
'render':function(g){
alert(g.getStore().getCount()); //检查当前store里的数据先,看看条数是否正确。
g.getStore().reload();
}
}