UI5_CRUD 3 UI方法实现

Display 方法:

首先获取选中行的context,并将其map到items对象中,然后分别获取Grid各个组件,将其设为不可编辑,并通过setValue方法设置值。


Update方法:

添加mode全局变量并将其设为update,与前面Display方法类似,Grid各个组件除了empId外都设为可编辑。



点击save按钮调用onSave方法,首先获取Grid各个组件的值,调用OData.request方法,第一个参数传入header信息,第二个参数为执行成功后调用的函数,第三个参数为调用过程中有error是调用的函数。在第二个参数中,传入OData.request方法函数,此时通过前面一次调用获取的X-CSRF-Token,作为参数传入header,该调用成功后,创建Dialog显示成功信息并刷新model。


Create与Delete方法

与Update方法类似,创建Create与Delete的实现方法,详细代码如下

sap.ui.controller("tablebinding.view1", {

/**
* Called when a controller is instantiated and its View controls (if available) are already created.
* Can be used to modify the View before it is displayed, to bind event handlers and do other one-time initialization.
* @memberOf tablebinding.view1
*/
    onInit: function() {
//      var oModel = new sap.ui.model.odata.ODataModel("proxy/sap/opu/odata/sap/ZLL_DEMO_SRV/");
        var oModel = new sap.ui.model.odata.v2.ODataModel("proxy/sap/opu/odata/sap/ZLL_DEMO_SRV/", { 
            json     : true,
            user     : "LZHANG",
            password : "Password2!"
        });
        this.getView().setModel(oModel,"empModel");
        var oGrid = this.getView().byId("GridId");
        oGrid.setVisible(false);
    },

/**
* Similar to onAfterRendering, but this hook is invoked before the controller's View is re-rendered
* (NOT before the first rendering! onInit() is used for that one!).
* @memberOf tablebinding.view1
*/
//  onBeforeRendering: function() {
//
//  },

/**
* Called when the View has been rendered (so its HTML is part of the document). Post-rendering manipulations of the HTML could be done here.
* This hook is the same one that SAPUI5 controls get after being rendered.
* @memberOf tablebinding.view1
*/
//  onAfterRendering: function() {
//
//  },

/**
* Called when the Controller is destroyed. Use this one to free resources and finalize activities.
* @memberOf tablebinding.view1
*/
//  onExit: function() {
//
//  }
    
    onDisplay: function(){

        var oTable = this.getView().byId("idEmployeeTable");
        var contexts = oTable.getSelectedContexts();
        var items = contexts.map(function(c){
            return c.getObject();
        });
        
        if(contexts.length==0){
            alert("please select a raw")
        }else{
            var oGrid = this.getView().byId("GridId");
            oGrid.setVisible(true);
            var oSave = this.getView().byId("saveBtnID");
            oSave.setVisible(false);
            
            var oId = this.getView().byId("empId");
            oId.setEditable(false);
            oId.setValue(items[0].Empno);
            var oId = this.getView().byId("fnameId");
            oId.setEditable(false);
            oId.setValue(items[0].Fname);
            var oId = this.getView().byId("lnameId");
            oId.setEditable(false);
            oId.setValue(items[0].Lname);
            var oId = this.getView().byId("addrsId");
            oId.setEditable(false);
            oId.setValue(items[0].Addrs);
            var oId = this.getView().byId("desgnId");
            oId.setEditable(false);
            oId.setValue(items[0].Desgn);
            
        }
        

        
    },
    mode: 0,
    onUpdate: function(){
        var oTable = this.getView().byId("idEmployeeTable");
        var contexts = oTable.getSelectedContexts();

        
        if(contexts.length==0){
            alert("please select a raw")
        }else{
            var oGrid = this.getView().byId("GridId");
            oGrid.setVisible(true);
            var oSave = this.getView().byId("saveBtnID");
            oSave.setVisible(true);
            var items = contexts.map(function(c){
                return c.getObject();
            });
            
            var oId = this.getView().byId("empId");
            oId.setEditable(false);
            oId.setValue(items[0].Empno);
            var oId = this.getView().byId("fnameId");
            oId.setEditable(true);
            oId.setValue(items[0].Fname);
            var oId = this.getView().byId("lnameId");
            oId.setEditable(true);
            oId.setValue(items[0].Lname);
            var oId = this.getView().byId("addrsId");
            oId.setEditable(true);
            oId.setValue(items[0].Addrs);
            var oId = this.getView().byId("desgnId");
            oId.setEditable(true);
            oId.setValue(items[0].Desgn);
            
            this.mode="update";
            
        }
    },
    onCreate: function(){
        
            var oGrid = this.getView().byId("GridId");
            oGrid.setVisible(true);
            var oSave = this.getView().byId("saveBtnID");
            oSave.setVisible(true);

            var oId = this.getView().byId("empId");
            oId.setEditable(true);
            oId.setValue("");
            var oId = this.getView().byId("fnameId");
            oId.setEditable(true);
            oId.setValue("");
            var oId = this.getView().byId("lnameId");
            oId.setEditable(true);
            oId.setValue("");
            var oId = this.getView().byId("addrsId");
            oId.setEditable(true);
            oId.setValue("");
            var oId = this.getView().byId("desgnId");
            oId.setEditable(true);
            oId.setValue("");
            
            this.mode="create";
            
        
    },
    deleteId: 0,
    onDelete: function(){
        var oGrid = this.getView().byId("GridId");
        oGrid.setVisible(false);
        var oTable = this.getView().byId("idEmployeeTable");
        var contexts = oTable.getSelectedContexts();

        
        if(contexts.length==0){
            alert("please select a raw")
        }else{
            
            var items = contexts.map(function(c){
                return c.getObject();
            });
            
            deleteId= items[0].Empno
            
            this.mode="delete";
            this.onSave();
            
        }
    },
    onSave: function(){
        view = this.getView();
        var oTable = this.getView().byId("idEmployeeTable");
        if(this.mode =="update"){
            var oId   = this.getView().byId("empId").getValue();
            var fname = this.getView().byId("fnameId").getValue();
            var lname = this.getView().byId("lnameId").getValue();
            var addrs = this.getView().byId("addrsId").getValue();
            var desgn = this.getView().byId("desgnId").getValue();
            
            OData.request({
                requestUri: "proxy/sap/opu/odata/sap/ZLL_DEMO_SRV/",
                method: "GET",
                headers: {
                    "X-Requested-With": "XMLHttpRequest",
                    "Content-Type": "application/atom+xml",
                    "DataServiceVersion": "2.0",
                    "X-CSRF-Token": "fetch"
                }
            },function(data,response){
//              header_xcsrf_token = response.headers['X-CSRF-Token'],
                var header_xcsrf_token = response.headers['x-csrf-token'];
                OData.request({
                    requestUri: "proxy/sap/opu/odata/sap/ZLL_DEMO_SRV/DemoSet('" + oId + "')",
                    method: "PUT",
                    headers: {
                        "X-Requested-With": "XMLHttpRequest",
                        "Content-Type": "application/atom+xml",
                        "DataServiceVersion": "2.0",
                        "Accept": "application/atom+xml, application/atomsvc+xml, application/xml",
                        "X-CSRF-Token": header_xcsrf_token
                    },
                    data:{
                        Empno: oId,
                        Fname: fname,
                        Lname: lname,
                        Addrs: addrs,
                        Desgn: desgn
                    }
                },function(data, response){
                    var oSubDialog = new sap.ui.commons.Dialog({
                        title: "Updated",
                        content: [new sap.ui.commons.Label({text:"Data updated successfully"})]
                    });
                    oTable.setBusy(true);
                    oSubDialog.open();
                    oSubDialog.addButton(new sap.ui.commons.Button({
                        text: "OK",
                        press: function(){
                            oSubDialog.close();
                            oTable.setBusy(false);
                        }
                    
                    }));
                    view.getModel("empModel").refresh();
                    view.byId("GridId").setVisible(false);
                    
                    
                },function(error){
                    alert("Update Error")
                })
            },function(error){
                var request= error.request;
                var response = error.response;
                alert("Error in Get --Request"+request+"Response"+response);
            });
            
        }else if(this.mode=="create"){
            var oId   = this.getView().byId("empId").getValue();
            var fname = this.getView().byId("fnameId").getValue();
            var lname = this.getView().byId("lnameId").getValue();
            var addrs = this.getView().byId("addrsId").getValue();
            var desgn = this.getView().byId("desgnId").getValue();
            
            OData.request({
                requestUri: "proxy/sap/opu/odata/sap/ZLL_DEMO_SRV/",
                method: "GET",
                headers: {
                    "X-Requested-With": "XMLHttpRequest",
                    "Content-Type": "application/atom+xml",
                    "DataServiceVersion": "2.0",
                    "X-CSRF-Token": "fetch"
                }
            },function(data,response){
//              header_xcsrf_token = response.headers['X-CSRF-Token'],
                var header_xcsrf_token = response.headers['x-csrf-token'];
                OData.request({
                    requestUri: "proxy/sap/opu/odata/sap/ZLL_DEMO_SRV/DemoSet",
                    method: "POST",
                    headers: {
                        "X-Requested-With": "XMLHttpRequest",
                        "Content-Type": "application/atom+xml",
                        "DataServiceVersion": "2.0",
                        "Accept": "application/atom+xml, application/atomsvc+xml, application/xml",
                        "X-CSRF-Token": header_xcsrf_token
                    },
                    data:{
                        Empno: oId,
                        Fname: fname,
                        Lname: lname,
                        Addrs: addrs,
                        Desgn: desgn
                    }
                },function(data, response){
                    var oSubDialog = new sap.ui.commons.Dialog({
                        title: "Created",
                        content: [new sap.ui.commons.Label({text:"Data created successfully"})]
                    });
                    oTable.setBusy(true);
                    oSubDialog.open();
                    oSubDialog.addButton(new sap.ui.commons.Button({
                        text: "OK",
                        press: function(){
                            oSubDialog.close();
                            oTable.setBusy(false);
                        }
                    
                    }));
                    view.getModel("empModel").refresh();
                    view.byId("GridId").setVisible(false);
                    
                    
                },function(error){
                    alert("Create Error")
                })
            },function(error){
                var request= error.request;
                var response = error.response;
                alert("Error in Get --Request"+request+"Response"+response);
            });
        }else if(this.mode=="delete"){
            
            OData.request({
                requestUri: "proxy/sap/opu/odata/sap/ZLL_DEMO_SRV/",
                method: "GET",
                headers: {
                    "X-Requested-With": "XMLHttpRequest",
                    "Content-Type": "application/atom+xml",
                    "DataServiceVersion": "2.0",
                    "X-CSRF-Token": "fetch"
                }
            },function(data,response){
//              header_xcsrf_token = response.headers['X-CSRF-Token'],
                var header_xcsrf_token = response.headers['x-csrf-token'];
                OData.request({
                    requestUri: "proxy/sap/opu/odata/sap/ZLL_DEMO_SRV/DemoSet('" + deleteId + "')",
                    method: "DELETE",
                    headers: {
                        "X-Requested-With": "XMLHttpRequest",
                        "Content-Type": "application/atom+xml",
                        "DataServiceVersion": "2.0",
                        "Accept": "application/atom+xml, application/atomsvc+xml, application/xml",
                        "X-CSRF-Token": header_xcsrf_token
                    },
                    data:{
                        Empno: oId,
                        Fname: fname,
                        Lname: lname,
                        Addrs: addrs,
                        Desgn: desgn
                    }
                },function(data, response){
                    var oSubDialog = new sap.ui.commons.Dialog({
                        title: "Deleted",
                        content: [new sap.ui.commons.Label({text:"Data deleted successfully"})]
                    });
                    oTable.setBusy(true);
                    oSubDialog.open();
                    oSubDialog.addButton(new sap.ui.commons.Button({
                        text: "OK",
                        press: function(){
                            oSubDialog.close();
                            oTable.setBusy(false);
                        }
                    
                    }));
                    view.getModel("empModel").refresh();
                    view.byId("GridId").setVisible(false);
                    
                    
                },function(error){
                    alert("Delete Error")
                })
            },function(error){
                var request= error.request;
                var response = error.response;
                alert("Error in Get --Request"+request+"Response"+response);
            });
        }
    }

});
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,902评论 5 468
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 84,037评论 2 377
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,978评论 0 332
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,867评论 1 272
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,763评论 5 360
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,104评论 1 277
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,565评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,236评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,379评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,313评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,363评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,034评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,637评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,719评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,952评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,371评论 2 346
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,948评论 2 341

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,566评论 18 139
  • 该文章属于刘小壮原创,转载请注明:刘小壮[https://www.jianshu.com/u/2de707c93d...
    刘小壮阅读 93,092评论 266 518
  • 作为一个自认为特别有人文情怀的人,始终觉得写技术贴特别没劲儿,于是“云上的世界”这个栏目基本上不死不活地空置了两年...
    无用之趣阅读 793评论 6 2
  • 先是初春,惊蛰正在。后来过了清明,雨也总是纷纷停停。 我是个初三的学生,是要参加体考的。体考将近,我们...
    Su尹沫阅读 178评论 0 0
  • 騰空而起 是對未來的無限美好渴望 雖然渴望往往帶來悲劇 Photo by Jerry Am Ende
    憨憨爹阅读 158评论 0 0