UI5_CRUD 3 UI方法實(shí)現(xiàn)

Display 方法:

首先獲取選中行的context茂装,并將其map到items對(duì)象中其馏,然后分別獲取Grid各個(gè)組件剧蹂,將其設(shè)為不可編輯,并通過(guò)setValue方法設(shè)置值。


Update方法:

添加mode全局變量并將其設(shè)為update重归,與前面Display方法類(lèi)似米愿,Grid各個(gè)組件除了empId外都設(shè)為可編輯。



點(diǎn)擊save按鈕調(diào)用onSave方法鼻吮,首先獲取Grid各個(gè)組件的值育苟,調(diào)用OData.request方法,第一個(gè)參數(shù)傳入header信息椎木,第二個(gè)參數(shù)為執(zhí)行成功后調(diào)用的函數(shù)违柏,第三個(gè)參數(shù)為調(diào)用過(guò)程中有error是調(diào)用的函數(shù)。在第二個(gè)參數(shù)中香椎,傳入OData.request方法函數(shù)漱竖,此時(shí)通過(guò)前面一次調(diào)用獲取的X-CSRF-Token,作為參數(shù)傳入header畜伐,該調(diào)用成功后馍惹,創(chuàng)建Dialog顯示成功信息并刷新model。


Create與Delete方法

與Update方法類(lèi)似玛界,創(chuàng)建Create與Delete的實(shí)現(xiàn)方法万矾,詳細(xì)代碼如下

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);
            });
        }
    }

});
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市慎框,隨后出現(xiàn)的幾起案子良狈,更是在濱河造成了極大的恐慌,老刑警劉巖笨枯,帶你破解...
    沈念sama閱讀 217,657評(píng)論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件薪丁,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡馅精,警方通過(guò)查閱死者的電腦和手機(jī)严嗜,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,889評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)硫嘶,“玉大人阻问,你說(shuō)我怎么就攤上這事÷偌玻” “怎么了称近?”我有些...
    開(kāi)封第一講書(shū)人閱讀 164,057評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀(guān)的道長(zhǎng)哮塞。 經(jīng)常有香客問(wèn)我刨秆,道長(zhǎng),這世上最難降的妖魔是什么忆畅? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,509評(píng)論 1 293
  • 正文 為了忘掉前任衡未,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘缓醋。我一直安慰自己如失,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,562評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布送粱。 她就那樣靜靜地躺著褪贵,像睡著了一般。 火紅的嫁衣襯著肌膚如雪抗俄。 梳的紋絲不亂的頭發(fā)上脆丁,一...
    開(kāi)封第一講書(shū)人閱讀 51,443評(píng)論 1 302
  • 那天,我揣著相機(jī)與錄音动雹,去河邊找鬼槽卫。 笑死,一個(gè)胖子當(dāng)著我的面吹牛胰蝠,可吹牛的內(nèi)容都是我干的歼培。 我是一名探鬼主播,決...
    沈念sama閱讀 40,251評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼茸塞,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼丐怯!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起翔横,我...
    開(kāi)封第一講書(shū)人閱讀 39,129評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎梗搅,沒(méi)想到半個(gè)月后禾唁,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,561評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡无切,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,779評(píng)論 3 335
  • 正文 我和宋清朗相戀三年荡短,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片哆键。...
    茶點(diǎn)故事閱讀 39,902評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡掘托,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出籍嘹,到底是詐尸還是另有隱情闪盔,我是刑警寧澤,帶...
    沈念sama閱讀 35,621評(píng)論 5 345
  • 正文 年R本政府宣布辱士,位于F島的核電站泪掀,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏颂碘。R本人自食惡果不足惜异赫,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,220評(píng)論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧塔拳,春花似錦鼠证、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,838評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至孕荠,卻和暖如春娩鹉,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背稚伍。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,971評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工弯予, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人个曙。 一個(gè)月前我還...
    沈念sama閱讀 48,025評(píng)論 2 370
  • 正文 我出身青樓锈嫩,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親垦搬。 傳聞我的和親對(duì)象是個(gè)殘疾皇子呼寸,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,843評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn)猴贰,斷路器对雪,智...
    卡卡羅2017閱讀 134,656評(píng)論 18 139
  • 該文章屬于劉小壯原創(chuàng),轉(zhuǎn)載請(qǐng)注明:劉小壯[http://www.reibang.com/u/2de707c93d...
    劉小壯閱讀 93,267評(píng)論 266 518
  • 作為一個(gè)自認(rèn)為特別有人文情懷的人米绕,始終覺(jué)得寫(xiě)技術(shù)貼特別沒(méi)勁兒瑟捣,于是“云上的世界”這個(gè)欄目基本上不死不活地空置了兩年...
    無(wú)用之趣閱讀 815評(píng)論 6 2
  • 先是初春,驚蟄正在栅干。后來(lái)過(guò)了清明迈套,雨也總是紛紛停停。 我是個(gè)初三的學(xué)生碱鳞,是要參加體考的桑李。體考將近,我們...
    Su尹沫閱讀 184評(píng)論 0 0
  • 騰空而起 是對(duì)未來(lái)的無(wú)限美好渴望 雖然渴望往往帶來(lái)悲劇 Photo by Jerry Am Ende
    憨憨爹閱讀 161評(píng)論 0 0