ligerUI---ListBox(列表框可移動)

来源:http://www.cnblogs.com/eleven258/archive/2017/11/28/7904826.html
-Advertisement-
Play Games

寫在前面: 對於可移動的列表框,ligerui中也對其進行了封裝,可以直接照著demo拿來用,不過那都是直接在頁面上靜態初始化的數據,那麼如何從後臺獲取? 前面有了對ligerui的一些組件的使用經驗後,在這裡其實 對於從後臺獲取數據在前臺頁面進行顯示,都大同小異。也不是很難。 即要麼是在liger ...


寫在前面:

  對於可移動的列表框,ligerui中也對其進行了封裝,可以直接照著demo拿來用,不過那都是直接在頁面上靜態初始化的數據,那麼如何從後臺獲取?

前面有了對ligerui的一些組件的使用經驗後,在這裡其實 對於從後臺獲取數據在前臺頁面進行顯示,都大同小異。也不是很難。

  即要麼是在ligerui組件中直接使用其url屬性向後臺發送請求,要麼是單獨發送一個ajax請求拿到數據後,通過獲取組件,然後設置其data屬性。嘿嘿。。

下麵就直接使用url屬性來發送請求吧。。。。。

 

前臺頁面:

 

<script type="text/javascript">
    var box1,box2;

    $(function() {

        //初始化8個listbox
        box1 = $("#listbox1").ligerListBox({
            isShowCheckBox: true,
            isMultiSelect: true,
            height: 140,
            //發送給後臺的請求
            url: '${baseURL}/getDeviceByAll.action',
        });
        box2 = $("#listbox2").ligerListBox({
            isShowCheckBox: true,
            isMultiSelect: true,
            height: 140,

        });

        var tempData2 = [{id:1,text:"aa"},{id:2,text:"bb"}];

        //button點擊事件
        $("#btn1").click(function(){
            setListBoxData(tempData2);
        });

    });



    function setListBoxData(tempData2){
        //貌似只能通過id來移除了  用removeItems不可以達到效果
        //例如移除id為1,2的然後添加到左邊
        for(var i=0;i<tempData2.length;i++){
            box1.removeItem(tempData2[i].id);
        }
        box2.addItems(tempData2);
    }

    //===========listbox四個按鈕點擊相關函數===========
    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="點擊" id="btn1">


</body>

 

後臺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對應的數據格式要有text、id欄位
            obj.put("id",device.getDevId());
            obj.put("text",device.getDevName());
            jsonArray.add(obj);

        }
        return SUCCESS;
    }

 

好啦,這樣就成功了,當然 我這裡是省略了後臺如何將json數據傳遞到前臺,因為在我寫ligerui的其他組件(ligerGrid,ligerForm)的時候已經寫過了,就不再重覆說了

效果演示截圖:(省略向左向右的移動效果圖)

在不勾選數據的情況下,點擊“點擊”按鈕,的效果圖如下:

 

其實在移除的過程中,一開始使用的removeItems()方法,但是測試貌似不可以移除,故採用removeItem()的方法,根據id來移除。。

額呃呃呃呃呃呃呃呃呃。。今天不用加班啦。。開心。。。。。。。。。。。。。。。

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 1.首先要下載PHPExcel放到vendor文件夾下,我的路徑是:項目/vendor/PHPExcel/,把下載的PHPExcel文件放在這裡 2.前端代碼 3.後臺代碼 輸出結果: 註意: 引入第三方類庫使用vendor();是按照命名空間的形式。底層代碼會把“ . ”自動替換成" / ",所以 ...
  • 1 非對稱加密演算法 1.1 概述 1976年,美國學者Dime和Henman為解決信息公開傳送和密鑰管理問題,提出一種新的密鑰交換協議,允許在不安全的媒體上的通訊雙方交換信息,安全地達成一致的密鑰,這就是“公開密鑰系統”。 與對稱加密演算法不同,非對稱加密演算法需要兩個密鑰:公開密鑰(publickey ...
  • 原文:http://blog.csdn.net/u012152619/article/details/51485297 一般來說,上面的幾個配置項對任何項目都是必不可少的,定義了項目的基本屬性。 這裡有必要對一個不太常用的屬性classifier做一下解釋,因為有時候引用某個jar包,classif ...
  • 本節內容 - 什麼是方法集 - 方法集區分基礎類型T和指針類型*T - 匿名嵌入對方法集的影響 - 方法集調用 ...
  • 語法: mvn install:install-file -Dfile=jar包的位置(參數一) -DgroupId=groupId(參數二) -DartifactId=artifactId(參數三) -Dversion=version(參數四) -Dpackaging=jar 我把“ojdbc-1 ...
  • JAVA靜態代碼塊會在類被載入時自動執行? 一、先看Java靜態方法,靜態變數 http://www.cnblogs.com/winterfells/p/7906078.html 靜態代碼塊 在類中,可以將某一塊代碼聲明為靜態的,這樣的程式塊叫靜態初始化段。靜態代碼塊的一般形式如下: 編譯通過後,用 ...
  • 上邊有字元串複製直接使用賦值號。 string1=string2; 實際上他執行的是什麼操作? strcpy(string1,string2); ...
  • 首先題主說的20%我不知道從哪方面去理解。接下來我會將自己多年來工作中會經常使用到的技術列出來。 1.html、css 2.java工作原理(jvm) 3.java語法、數據結構和演算法 4.java語言特性(封裝、繼承、多態、抽象) 5.java設計模式(在開發中會經常用到) 6.java反射機制( ...
一周排行
    -Advertisement-
    Play Games
  • 前言 本文介紹一款使用 C# 與 WPF 開發的音頻播放器,其界面簡潔大方,操作體驗流暢。該播放器支持多種音頻格式(如 MP4、WMA、OGG、FLAC 等),並具備標記、實時歌詞顯示等功能。 另外,還支持換膚及多語言(中英文)切換。核心音頻處理採用 FFmpeg 組件,獲得了廣泛認可,目前 Git ...
  • OAuth2.0授權驗證-gitee授權碼模式 本文主要介紹如何筆者自己是如何使用gitee提供的OAuth2.0協議完成授權驗證並登錄到自己的系統,完整模式如圖 1、創建應用 打開gitee個人中心->第三方應用->創建應用 創建應用後在我的應用界面,查看已創建應用的Client ID和Clien ...
  • 解決了這個問題:《winForm下,fastReport.net 從.net framework 升級到.net5遇到的錯誤“Operation is not supported on this platform.”》 本文內容轉載自:https://www.fcnsoft.com/Home/Sho ...
  • 國內文章 WPF 從裸 Win 32 的 WM_Pointer 消息獲取觸摸點繪製筆跡 https://www.cnblogs.com/lindexi/p/18390983 本文將告訴大家如何在 WPF 裡面,接收裸 Win 32 的 WM_Pointer 消息,從消息裡面獲取觸摸點信息,使用觸摸點 ...
  • 前言 給大家推薦一個專為新零售快消行業打造了一套高效的進銷存管理系統。 系統不僅具備強大的庫存管理功能,還集成了高性能的輕量級 POS 解決方案,確保頁面載入速度極快,提供良好的用戶體驗。 項目介紹 Dorisoy.POS 是一款基於 .NET 7 和 Angular 4 開發的新零售快消進銷存管理 ...
  • ABP CLI常用的代碼分享 一、確保環境配置正確 安裝.NET CLI: ABP CLI是基於.NET Core或.NET 5/6/7等更高版本構建的,因此首先需要在你的開發環境中安裝.NET CLI。這可以通過訪問Microsoft官網下載並安裝相應版本的.NET SDK來實現。 安裝ABP ...
  • 問題 問題是這樣的:第三方的webapi,需要先調用登陸介面獲取Cookie,訪問其它介面時攜帶Cookie信息。 但使用HttpClient類調用登陸介面,返回的Headers中沒有找到Cookie信息。 分析 首先,使用Postman測試該登陸介面,正常返回Cookie信息,說明是HttpCli ...
  • 國內文章 關於.NET在中國為什麼工資低的分析 https://www.cnblogs.com/thinkingmore/p/18406244 .NET在中國開發者的薪資偏低,主要因市場需求、技術棧選擇和企業文化等因素所致。歷史上,.NET曾因微軟的閉源策略發展受限,儘管後來推出了跨平臺的.NET ...
  • 在WPF開發應用中,動畫不僅可以引起用戶的註意與興趣,而且還使軟體更加便於使用。前面幾篇文章講解了畫筆(Brush),形狀(Shape),幾何圖形(Geometry),變換(Transform)等相關內容,今天繼續講解動畫相關內容和知識點,僅供學習分享使用,如有不足之處,還請指正。 ...
  • 什麼是委托? 委托可以說是把一個方法代入另一個方法執行,相當於指向函數的指針;事件就相當於保存委托的數組; 1.實例化委托的方式: 方式1:通過new創建實例: public delegate void ShowDelegate(); 或者 public delegate string ShowDe ...