ligerUI---ListBox(列表框可移動(dòng)的實(shí)例)
寫在前面:
對(duì)于可移動(dòng)的列表框,ligerui中也對(duì)其進(jìn)行了封裝,可以直接照著demo拿來(lái)用,不過(guò)那都是直接在頁(yè)面上靜態(tài)初始化的數(shù)據(jù),那么如何從后臺(tái)獲???
前面有了對(duì)ligerui的一些組件的使用經(jīng)驗(yàn)后,在這里其實(shí) 對(duì)于從后臺(tái)獲取數(shù)據(jù)在前臺(tái)頁(yè)面進(jìn)行顯示,都大同小異。也不是很難。
即要么是在ligerui組件中直接使用其url屬性向后臺(tái)發(fā)送請(qǐng)求,要么是單獨(dú)發(fā)送一個(gè)ajax請(qǐng)求拿到數(shù)據(jù)后,通過(guò)獲取組件,然后設(shè)置其data屬性。嘿嘿。。
下面就直接使用url屬性來(lái)發(fā)送請(qǐng)求吧。。。。。
前臺(tái)頁(yè)面:
<script type="text/javascript"> var box1,box2; $(function() { //初始化8個(gè)listbox box1 = $("#listbox1").ligerListBox({ isShowCheckBox: true, isMultiSelect: true, height: 140, //發(fā)送給后臺(tái)的請(qǐng)求 url: '${baseURL}/getDeviceByAll.action', }); box2 = $("#listbox2").ligerListBox({ isShowCheckBox: true, isMultiSelect: true, height: 140, }); var tempData2 = [{id:1,text:"aa"},{id:2,text:"bb"}]; //button點(diǎn)擊事件 $("#btn1").click(function(){ setListBoxData(tempData2); }); }); function setListBoxData(tempData2){ //貌似只能通過(guò)id來(lái)移除了 用removeItems不可以達(dá)到效果 //例如移除id為1,2的然后添加到左邊 for(var i=0;i<tempData2.length;i++){ box1.removeItem(tempData2[i].id); } box2.addItems(tempData2); } //===========listbox四個(gè)按鈕點(diǎn)擊相關(guān)函數(shù)=========== function moveToLeft1() { var selecteds = box2.getSelectedItems(); if (!selecteds || !selecteds.length) return; box2.removeItems(selecteds); box1.addItems(selecteds); } function moveToRight1() { var selecteds = box1.getSelectedItems(); if (!selecteds || !selecteds.length) return; box1.removeItems(selecteds); box2.addItems(selecteds); } function moveAllToLeft1() { var selecteds = box2.data; if (!selecteds || !selecteds.length) return; box1.addItems(selecteds); box2.removeItems(selecteds); } function moveAllToRight1() { var selecteds = box1.data; if (!selecteds || !selecteds.length) return; box2.addItems(selecteds); box1.removeItems(selecteds); } </script> <style type="text/css"> .middle input { display: block;width:30px; margin:2px; } </style> </head> <body> <div> <div style="float:left;font-size:15px;width:150px;text-align: center">Support Devices:</div> <div style="margin:4px;float:left;"> <div id="listbox1"></div> </div> <div style="margin:4px;float:left;" class="middle"> <input type="button" onclick="moveToLeft1()" value="<" /> <input type="button" onclick="moveToRight1()" value=">" /> <input type="button" onclick="moveAllToLeft1()" value="<<" /> <input type="button" onclick="moveAllToRight1()" value=">>" /> </div> <div style="margin:4px;float:left;"> <div id="listbox2"></div> </div> </div> <input type="button" value="點(diǎn)擊" id="btn1"> </body>
后臺(tái)action:
private JSONArray jsonArray; public JSONArray getJsonArray() { return jsonArray; } public String getDeviceByAll() throws Exception{ List<Device> deviceList = deviceService.getAll(Device.class); jsonArray = new JSONArray(); for(Device device:deviceList){ JSONObject obj = new JSONObject(); //listbox對(duì)應(yīng)的數(shù)據(jù)格式要有text、id字段 obj.put("id",device.getDevId()); obj.put("text",device.getDevName()); jsonArray.add(obj); } return SUCCESS; }
好啦,這樣就成功了,當(dāng)然 我這里是省略了后臺(tái)如何將json數(shù)據(jù)傳遞到前臺(tái),因?yàn)樵谖覍憀igerui的其他組件(ligerGrid,ligerForm)的時(shí)候已經(jīng)寫過(guò)了,就不再重復(fù)說(shuō)了
效果演示截圖:(省略向左向右的移動(dòng)效果圖)
在不勾選數(shù)據(jù)的情況下,點(diǎn)擊“點(diǎn)擊”按鈕,的效果圖如下:
其實(shí)在移除的過(guò)程中,一開(kāi)始使用的removeItems()方法,但是測(cè)試貌似不可以移除,故采用removeItem()的方法,根據(jù)id來(lái)移除。。
相關(guān)文章
django admin 使用SimpleUI自定義按鈕彈窗框示例
Django 后臺(tái)admin有大量的屬性和方法,擁有強(qiáng)大的功能和自定義能力,這篇文章主要介紹了django admin 使用SimpleUI自定義按鈕彈窗框示例,需要的朋友可以參考下2023-04-04JavaScript設(shè)計(jì)模式之工廠模式和構(gòu)造器模式
這篇文章主要介紹了JavaScript設(shè)計(jì)模式之工廠模式和構(gòu)造器模式,本文同時(shí)講解了設(shè)計(jì)模式的類別如創(chuàng)建型設(shè)計(jì)模式、結(jié)構(gòu)型設(shè)計(jì)模式、行為設(shè)計(jì)模式等內(nèi)容,需要的朋友可以參考下2015-02-02在vscode上直接運(yùn)行typescript的操作方法
在學(xué)習(xí)typescript的過(guò)程中發(fā)現(xiàn)在vscode上不能很好地的輸出typescript的運(yùn)行結(jié)果,需要先將typescript編譯為javascript,在通過(guò)node執(zhí)行js文件得到結(jié)果,這篇文章給大家介紹如何在vscode上直接運(yùn)行typescript,感興趣的朋友一起看看吧2023-12-12javascript中的后退和刷新實(shí)現(xiàn)方法
下面小編就為大家?guī)?lái)一篇javascript中的后退和刷新實(shí)現(xiàn)方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-11-11利用uni-app和uView實(shí)現(xiàn)多圖上傳功能全過(guò)程
最近在使用uniapp開(kāi)發(fā)的微信小程序中使用了圖片上傳功能,下面這篇文章主要給大家介紹了關(guān)于利用uni-app和uView實(shí)現(xiàn)多圖上傳功能的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-03-03微信小程序登錄方法之授權(quán)登陸及獲取微信用戶手機(jī)號(hào)
最近改了一個(gè)公司項(xiàng)目,新增加了一個(gè)獲取用戶手機(jī)號(hào)功能,里面用到了關(guān)于獲取用戶信息和用戶手機(jī)號(hào)的功能,下面這篇文章主要給大家介紹了關(guān)于微信小程序登錄方法之授權(quán)登陸及獲取微信用戶手機(jī)號(hào)的相關(guān)資料,需要的朋友可以參考下2022-07-07使用js實(shí)現(xiàn)一個(gè)可編輯的select下拉列表
這篇文章主要介紹了使用js實(shí)現(xiàn)一個(gè)可編輯的select下拉列表,個(gè)人感覺(jué)還不錯(cuò),需要的朋友可以參考下2014-02-02Bootstrap入門教程一Hello Bootstrap初識(shí)
Bootstrap,來(lái)自 Twitter,是目前很受歡迎的前端框架。Bootstrap是基于 HTML5、CSS3和Javascriopt開(kāi)發(fā)的。這篇文章主要介紹了基于Bootstrap3實(shí)現(xiàn)漂亮簡(jiǎn)潔的CSS3價(jià)格表(精美代碼版),需要的朋友可以參考下2017-03-03