第一种:这是删除选中的行的
在js页面:
//定义修改后的JSON对象
var jsonArray = [];
//获取选中的行
var storeData = Ext.getCmp("ContractTest_page_grid").getSelectionModel().getSelections();
//选中行不为空
if(storeData.length!=0){
//循环选中的行,并添加到jsonArray中
for (var i=0; i<storeData.length; i++ ){
jsonArray.push(storeData[i].data);
}
}else{
alert('请选择行后进行操作!');
}
Ext.Ajax.request({
url:basePath+"Contractcontrast_delMany" ,
params:{gridDate: Ext.encode(jsonArray)},//吧jsonArray作为参数传到后台
success:function(){
Ext.getCmp("ContractTest_page_grid").storeReLoad();
},
waitTitle:"数据传送" ,
waitMsg:"数据传送中,请稍候..." ,
scope:this
}) ;
Action中:
先定义变量接收从页面传过来的参数
private String gridDate; 记住要get set 一下
删除方法
public String delMany() throws Exception{
boolean b = false;
if (!gridDate.equals("[]")) {
JSONArray json = JSONArray.fromObject(gridDate);
List<T_Contractcontrast> list = JSONArray.toList(json,T_Contractcontrast.class);
for (T_Contractcontrast tr : list) {
b = rks.del(tr.getId());
}
}
String jsonbak = "{success:" + b + " }";
CallBackUnit.responseJsonBak(jsonbak);
return null;
}
要注意的是,在前台传过来的jsonArray是一个对象,在后台要用转成相对应的对象接收
第二种:删除store中所有数据的方法
js页面:
var num = store.getCount();
var jsonArray = [];
for(var i=0;i<num;i++){
jsonArray.push(store.getAt(i).data);
}
后台方法跟上面相同