extjs通用CRUD方法

/**
* 添加事件
* @param {} saveButton
* @param {} gridObj
* @param {} idName
* @param {} treeObj
* @param {} url
* @param {} assistFunc
* @returns {}
*/
function commGridInsertAction(saveButton,gridObj,idName,treeObj,url,assistFunc){
if(saveButton != null && saveButton != undefined){
if(assistFunc){
assistFunc();
}
saveButton.on("click",function(){
var sd = gridObj.getStore();
conn.request({
url : url,
params : {},
success: function(response, opts){//成功操作
var obj = Ext.decode(response.responseText)[0];
var Plant = gridObj.getStore().recordType;
var p = new Plant(obj);
gridObj.stopEditing();
sd.insert(0, p);
gridObj.startEditing(0, 2);
},
failure:function() {//失败操作
Ext.Msg.alert("提示", "添加数据失败...");
}
})
});
}
}
/**
* 删除事件
* @param {} deleteButton
* @param {} gridObj
* @param {} idName
* @param {} treeObj
* @param {} url
* @param {} assistFunc
* @returns {}
*/
function commGridDeleteAction(deleteButton,gridObj,idName,treeObj,url,params,assistFunc){
if(deleteButton != null && deleteButton != undefined){
if(assistFunc){
assistFunc();
}
deleteButton.on("click",function(b,e){
var sd = gridObj.getStore();
var rs = gridObj.getSelectionModel().getSelections();
var length = rs.length;
if(length > 0){
var ids_data = "";
var dis_array = new Array();
for (var i = 0; i < length; i++) {
if(i==0){
ids_data = rs[i].get(idName);
}else{
ids_data = ids_data + ","+rs[i].get(idName);
}
dis_array.push(rs[i].get(idName));
}
var para = params;
para[idName] = ids_data;
conn.request({
url: url,
params : para,
success: function(response){//成功操作
sd.reload();
//循环删除gird的垃圾数据
for (var i = 0; i < length; i++) {
sd.remove(rs[i]);
}
Ext.example.msg("提醒","您已经成功删除数据");
},
failure:function() {//失败操作
Ext.Msg.alert("提示", "删除数据失败...");
}
})
}else{
Ext.Msg.alert("提示", "您还没有选择要删除的数据...");
}
})
}
}
/**
* 批量更新
* @param {} listupdate
* @param {} gridObj
* @param {} treeObj
* @param {} url
* @param {} assistFunc
* @param {} canUpdateFields
* @returns {}
*/
function commGridListUpdateAction(listupdate,gridObj,treeObj,url,assistFunc,canUpdateFields){
if(listupdate != null && listupdate != undefined){
if(assistFunc){
assistFunc();
}
listupdate.on("click",function(){
var sd = gridObj.getStore();
var objs = sd.getModifiedRecords();
var objData = new Array();
var model = null;
if(objs.length == 0){
Ext.example.msg("提醒","没有要保存的数据");
return;
}else{
for(var i = 0 ; i<objs.length ;i++){
model = {};
$.each(canUpdateFields,function(k,v){
model[k] = objs[i].get(k);
});
objData.push(model);
}
conn.request({
url : url,
params : {strData:JSON.stringify(objData)},
success: function(response, opts){//成功操作
var i = response.responseText;
for(var j = 0 ; j<objs.length ;j++){ //去掉修改的红色标记
objs[j].commit();
j--;
}
Ext.example.msg("提醒","您已经成功修改 "+i+" 条数据");
},
failure:function() {//失败操作
Ext.Msg.alert("提示", "保存数据失败...");
}
})
}
})
}
}


/**
* 数据字典表格时间注册
* @param {} gridObj
* @param {} idName
* @param {} treeObj
* @returns {}
*/
function userGridEventMonitor(gridObj,idName,treeObj){
/**添加事件*/
var saveButton = gridObj.getTopToolbar().findById("save-user");
new commGridInsertAction(saveButton,gridObj,idName,treeObj,"/dept/userAction.action?FunctionName=insertUser&checkNodeId="+gridObj.store.baseParams["checkNodeId"]);
/**删除事件*/
var deleteButton = gridObj.getTopToolbar().findById("delete-user");
new commGridDeleteAction(deleteButton,gridObj,idName,treeObj,"/dept/userAction.action?FunctionName=deleteUser&cascadeType=CASCADE",
{userId:{}},null);
/**批量更新事件*/
var listupdate = gridObj.getTopToolbar().findById("listupdate-user");
new commGridListUpdateAction(listupdate,gridObj,treeObj,
"/dept/userAction.action?FunctionName=listupdate",
null,{"userId" : null,
"username" : null,
"chineseName" : null,
"password" : null,
"updateDate" : null,
"enabled" : null,
"orderIndex" : null,
"deptId" : null}
);
/**双击部门的事件*/
gridObj.on("celldblclick",function(g,rowIndex,columnIndex,e) {
var sd = g.getStore();
var cm = g.getColumnModel();
var id = cm.getDataIndex(columnIndex);
if("deptId" == id){
var deptID = sd.getAt(rowIndex).get("deptId");
var tree = new sms.treeDicWin.treeDicWin({width:250,height:500,
url:"/dept/deptAction.action?FunctionName=loadDept4Tree&showCheckbox=true&deptId=",
text:"海顿是公司",idName:"userId",DicidName:"deptId",g:g,rowIndex:rowIndex,columnIndex:columnIndex});
tree.show();
}else if("photosAdd" == id){
var dialog = new Ext.ux.UploadDialog.Dialog({
url: 'upload.jsp',
reset_on_hide: false,
autoCreate: true,
closable: true,
allow_close_on_upload: true,
permitted_extensions: ['JPG','jpg','jpeg','JPEG','GIF','gif'],
base_params:{className: "com.hd.department.model.user" }
upload_autostart: false
});
dialog.show();
dialog.on("uploadsuccess", function(dialog, filename, resp_data, record){

});
}

});
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
由于lazarus中的例子: lazarus\fpc\2.6.0\source\packages\fcl-web\examples\webdata\demo 用的extjs是3.4版,在新的extjs4.2环境下不能运行,费了好大劲,终于搞定。期间到laz英文论坛提问,可能跟我英文差有关吧,一个回答的都没有。搞定后,版主又要我进行了“ open a new issue in the bugtracker and add a diff with the changes ”。本着互助、共享的原则,整个东西放到lazarus中文社区论坛,欢迎大家不断改善源码,提高性能,并且将改善后的源码进行共享。 我的环境:winxp,lazarus1.1,fpc2.6.0,apache2.2,extjs4.2。 不要犯怵,安装配置很简单,运行这个demo一行代码都不需要编写。后面我会详细讲安装运行方法。 安装配置: 1、安装Apache。下载地址:http://www.fayea.com/apache-mirror//httpd/binaries/win32/httpd-2.2.22-win32-x86-openssl-0.9.8t.msi 其他版本我没试过,高版本的应该可以。 我安装到了D:\apache2.2 2、下载安装Extjs4.2。下载地址:http://cdn.sencha.io/ext-4.2.0-beta.zip?ref=extjs.org.cn 下载后,解压缩,文件夹复制到 D:\apache2.2\htdocs\,然后改名为Ext。 3、下载附件。 原来的lazarus demo 源码未做任何修改,直接编译即可。编译之前需要安装weblaz和lazwebextra两个包。 本文附件中已经有extgrid.exe,可以直接使用。 将extgrid.exe和users.dbf复制到 apache2.2\cgi-bin 目录下。 将附件中其余文件复制到 apache2.2\htdocs\demodbf 目录下。 好了,全部配置完成。 4、启动Apache,访问:http://localhost/demodbf/extgrid-json.html

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值