Extjs通用CRUD

 

001/**
002  * 添加事件
003  * @param {} saveButton
004  * @param {} gridObj
005  * @param {} idName
006  * @param {} treeObj
007  * @param {} url
008  * @param {} assistFunc
009  * @returns {}
010  */
011 function commGridInsertAction(saveButton,gridObj,idName,treeObj,url,assistFunc){
012     if(saveButton != null && saveButton != undefined){
013         if(assistFunc){
014            assistFunc();
015        }
016         saveButton.on("click",function(){
017             var sd = gridObj.getStore();
018            conn.request({
019                    url : url,
020                    params : {},
021                     success: function(response, opts){//成功操作
022                         var obj = Ext.decode(response.responseText)[0];
023                         var Plant = gridObj.getStore().recordType;
024                         var p = new Plant(obj);
025                        gridObj.stopEditing();
026                        sd.insert(0, p);
027                        gridObj.startEditing(0, 2);
028                    },
029                     failure:function() {//失败操作
030                         Ext.Msg.alert("提示""添加数据失败...");
031                    }
032            })
033        });
034    }  
035}
036/**
037  * 删除事件
038  * @param {} deleteButton
039  * @param {} gridObj
040  * @param {} idName
041  * @param {} treeObj
042  * @param {} url
043  * @param {} assistFunc
044  * @returns {}
045  */
046 function commGridDeleteAction(deleteButton,gridObj,idName,treeObj,url,params,assistFunc){
047     if(deleteButton != null && deleteButton != undefined){
048         if(assistFunc){
049            assistFunc();
050        }  
051         deleteButton.on("click",function(b,e){
052             var sd = gridObj.getStore();
053             var rs = gridObj.getSelectionModel().getSelections();
054             var length = rs.length;
055             if(length > 0){
056                 var ids_data = "";
057                 var dis_array = new Array();
058                 for (var i = 0; i < length; i++) {
059                     if(i==0){
060                        ids_data = rs[i].get(idName);
061                     }else{
062                         ids_data =  ids_data + ","+rs[i].get(idName);
063                    }
064                    dis_array.push(rs[i].get(idName));
065                }
066                 var para = params;
067                para[idName] = ids_data;
068                conn.request({
069                    url: url,
070                    params : para,
071                     success: function(response){//成功操作
072                            sd.reload();
073                             //循环删除gird的垃圾数据
074                             for (var i = 0; i < length; i++) {
075                                sd.remove(rs[i]);
076                            }
077                             Ext.example.msg("提醒","您已经成功删除数据");                     
078                    },
079                     failure:function() {//失败操作
080                             Ext.Msg.alert("提示""删除数据失败...");
081                    }
082                })
083             }else{
084                 Ext.Msg.alert("提示""您还没有选择要删除的数据...");
085            }
086        })
087    }
088}
089/**
090  * 批量更新
091  * @param {} listupdate
092  * @param {} gridObj
093  * @param {} treeObj
094  * @param {} url
095  * @param {} assistFunc
096  * @param {} canUpdateFields
097  * @returns {}
098  */
099 functioncommGridListUpdateAction(listupdate,gridObj,treeObj,url,assistFunc,canUpdateFields){
100     if(listupdate != null && listupdate != undefined){
101         if(assistFunc){
102            assistFunc();
103        }      
104         listupdate.on("click",function(){
105             var sd = gridObj.getStore();
106             var objs = sd.getModifiedRecords();
107             var objData = new Array();
108             var model = null;
109             if(objs.length == 0){
110                 Ext.example.msg("提醒","没有要保存的数据");  
111                 return;
112             }else{
113                 for(var i = 0 ; i<objs.length ;i++){
114                    model = {};
115                     $.each(canUpdateFields,function(k,v){
116                        model[k] = objs[i].get(k);
117                    });
118                    objData.push(model);
119                }
120                conn.request({
121                    url : url,
122                    params : {strData:JSON.stringify(objData)},
123                     success: function(response, opts){//成功操作
124                         var i = response.responseText;
125                         for(var j = 0 ; j<objs.length ;j++){ //去掉修改的红色标记
126                            objs[j].commit();
127                            j--;
128                        }
129                         Ext.example.msg("提醒","您已经成功修改  "+i+" 条数据");
130                    },
131                     failure:function() {//失败操作
132                         Ext.Msg.alert("提示""保存数据失败...");
133                    }
134                 })
135            }
136        })
137    }
138}
01/**
02  * 数据字典表格时间注册
03  * @param {} gridObj
04  * @param {} idName
05  * @param {} treeObj
06  * @returns {}
07  */
08 function userGridEventMonitor(gridObj,idName,treeObj){
09     /**添加事件*/
10     var saveButton = gridObj.getTopToolbar().findById("save-user");
11     new commGridInsertAction(saveButton,gridObj,idName,treeObj,"/dept/userAction.action?FunctionName=insertUser&checkNodeId="+gridObj.store.baseParams["checkNodeId"]);
12     /**删除事件*/
13     var deleteButton = gridObj.getTopToolbar().findById("delete-user");
14     newcommGridDeleteAction(deleteButton,gridObj,idName,treeObj,"/dept/userAction.action?FunctionName=deleteUser&cascadeType=CASCADE",
15     {userId:{}},null);
16     /**批量更新事件*/
17     var listupdate = gridObj.getTopToolbar().findById("listupdate-user");
18     new commGridListUpdateAction(listupdate,gridObj,treeObj,
19             "/dept/userAction.action?FunctionName=listupdate",
20         null,{"userId" null,
21               "username" null,
22               "chineseName" null,
23               "password" null,
24               "updateDate" null,
25               "enabled" null,
26               "orderIndex" null,
27               "deptId" null}
28    );
29     /**双击部门的事件*/
30     gridObj.on("celldblclick",function(g,rowIndex,columnIndex,e) {
31         var sd = g.getStore();
32         var cm = g.getColumnModel();
33         var id = cm.getDataIndex(columnIndex);
34         if("deptId" == id){
35             var deptID = sd.getAt(rowIndex).get("deptId");
36             var tree = new sms.treeDicWin.treeDicWin({width:250,height:500,
37                         url:"/dept/deptAction.action?FunctionName=loadDept4Tree&showCheckbox=true&deptId=",
38                             text:"海顿是公司",idName:"userId",DicidName:"deptId",g:g,rowIndex:rowIndex,columnIndex:columnIndex});
39            tree.show();
40         }else if("photosAdd" == id){
41             var dialog = new Ext.ux.UploadDialog.Dialog({
42                   url: 'upload.jsp',
43                   reset_on_hide: false,
44                   autoCreate: true
45                   closable: true
46                   allow_close_on_upload: true,
47                   permitted_extensions: ['JPG','jpg','jpeg','JPEG','GIF','gif'],  
48                   base_params:{className: "com.hd.department.model.user" }
49                   upload_autostart: false
50            });
51            dialog.show();
52             dialog.on("uploadsuccess"function(dialog, filename, resp_data, record){
53                  
54            });
55        }
56          
57    });

 

  • 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、付费专栏及课程。

余额充值