<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當(dāng)前位置: 首頁 - 科技 - 知識百科 - 正文

        JS組件BootstrapTable表格行拖拽效果實現(xiàn)代碼_javascript技巧

        來源:懂視網(wǎng) 責(zé)編:小采 時間:2020-11-27 21:46:56
        文檔

        JS組件BootstrapTable表格行拖拽效果實現(xiàn)代碼_javascript技巧

        JS組件BootstrapTable表格行拖拽效果實現(xiàn)代碼_javascript技巧:一、業(yè)務(wù)需求及實現(xiàn)效果 項目涉及到訂單模塊,那天突然接到一個需求,說是兩種不同狀態(tài)的訂單之間要實現(xiàn)插單的效果,頁面上呈現(xiàn)方式是:左右兩個Table,左邊Table里面是狀態(tài)為1的訂單,右邊Table里面是狀態(tài)為2訂單,左邊Table里面的行數(shù)據(jù)拖動到右邊Tabl
        推薦度:
        導(dǎo)讀JS組件BootstrapTable表格行拖拽效果實現(xiàn)代碼_javascript技巧:一、業(yè)務(wù)需求及實現(xiàn)效果 項目涉及到訂單模塊,那天突然接到一個需求,說是兩種不同狀態(tài)的訂單之間要實現(xiàn)插單的效果,頁面上呈現(xiàn)方式是:左右兩個Table,左邊Table里面是狀態(tài)為1的訂單,右邊Table里面是狀態(tài)為2訂單,左邊Table里面的行數(shù)據(jù)拖動到右邊Tabl
        一、業(yè)務(wù)需求及實現(xiàn)效果

        項目涉及到訂單模塊,那天突然接到一個需求,說是兩種不同狀態(tài)的訂單之間要實現(xiàn)插單的效果,頁面上呈現(xiàn)方式是:左右兩個Table,左邊Table里面是狀態(tài)為1的訂單,右邊Table里面是狀態(tài)為2訂單,左邊Table里面的行數(shù)據(jù)拖動到右邊Table里面指定行的位置,拖動完成后,左邊表格減少一行,右邊表格增加一行。除此之外,還需要撤銷操作(相當(dāng)于Ctrl + Z操作),能夠返回到上一步的狀態(tài)。可能描述會讓大家模擬兩可,反正已經(jīng)實現(xiàn)了,先來看看效果圖吧。

        1、先看看拖動之前的效果

        2、這是拖動左邊表格行數(shù)據(jù)的效果

        3、拖動一行完成之后表格數(shù)據(jù)的效果

        4、第二次、第三次拖動完成后效果

        5、右邊表格上面撤銷操作點(diǎn)擊效果

        6、多次點(diǎn)擊撤銷,表格回到初始狀態(tài)

        二、代碼示例
        接到需求的第一感覺是應(yīng)該上Bootstrap table api里面找一下,畢竟開源的力量是強(qiáng)大的,或許有相關(guān)的示例呢。經(jīng)過一番查找,很可惜,Bootstrap Table沒有這種兩張表格之間的操作。想想其實也可以理解,Bootstrap Table是針對某個動態(tài)表格數(shù)據(jù)綁定的,它的側(cè)重點(diǎn)是表格內(nèi)部的功能,比如表格內(nèi)部行的拖拽排序(Reorder Rows)有很好的解決方案,對于像博主這樣的特殊需求,似乎也應(yīng)該自己去實現(xiàn)。
        1、需求分析
        既然決定自己去寫,開始分析需求,似乎這個操作里面比較困難的是拖拽效果,說到拖拽效果,原來使用JsPlumb的時候那使用太多了,于是就想到了我們神奇的JQuery UI里面的draggable.js 和droppable.js。拖拽的問題解決了,那么還有一個難點(diǎn),就是撤銷操作怎么辦?我們知道Ctrl+z的意思是還原,什么叫還原?就是返回到上一步的操作,那么前提是要能夠保存上一步的狀態(tài),說到保存某一步的狀態(tài),博主就知道怎么做了,需要一個全局變量Json,里面要有三個鍵值對,分別是當(dāng)前步驟的索引、左邊表格的數(shù)據(jù)、右邊表格的數(shù)據(jù)。似乎也不太難嘛,就此著手,開干。
        2、代碼示例
        2.1 cshtml頁面代碼

        
        
         
         @ViewBag.Title
         @Styles.Render("~/Content/css")
         @Styles.Render("~/Content/table-css")
         @Scripts.Render("~/bundles/jquery")
         @Scripts.Render("~/bundles/knockout")
         @Scripts.Render("~/bundles/bootstrap")
         @Scripts.Render("~/bundles/bootstrap-table")
         @RenderSection("Scripts", false)
        
        
         @RenderBody()
        
        
         
        @{
         ViewBag.Title = "訂單插單";
         Layout = "~/Views/Shared/_Layout.cshtml";
        }
        
        @Scripts.Render("~/bundles/Order/InsertOrder")
        @Styles.Render("~/bundles/Order/css")
        @Scripts.Render("~/Content/bootstrap/datepicker/js")
        @Styles.Render("~/Content/bootstrap/datepicker/css")
        
        

        2.2 js代碼

        我們重點(diǎn)來看幾個地方的代碼:
        2.2.1 左邊表格加載成功之后執(zhí)行表格行的可拖拽。

        在draggable的start事件中,我們將拖拽之前的左右表格中的數(shù)據(jù)全部保存到arrdata變量中,i_statuindex這個全局變量用于記錄當(dāng)前這一步的索引,用于撤銷操作。
        2.2.2 右邊表格在加載成功之后注冊表格的droppable事件    

        在drop事件時,取到當(dāng)前拖過來的行數(shù)據(jù),計算當(dāng)前鼠標(biāo)所在的位置,在右邊表格指定位置插入拖過來的行數(shù)據(jù)。然后刪除左邊表格拖過來的行數(shù)據(jù)。
        2.2.3 撤銷操作代碼   

        撤銷操作主要是通過全局變量arrdata里面的索引判斷撤銷到哪一步,然后根據(jù)索引取出當(dāng)前步驟的左右表格數(shù)據(jù),依次向兩表格插入數(shù)據(jù),然后i_statuindex依次遞減,直至等于零,由于左邊表格行數(shù)據(jù)全部重寫加載過,所以需要重新注冊可拖拽事件。就是這么簡單的三步就能實現(xiàn)想要的效果,是不是很簡單~~

        聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        JS組件BootstrapTable表格行拖拽效果實現(xiàn)代碼_javascript技巧

        JS組件BootstrapTable表格行拖拽效果實現(xiàn)代碼_javascript技巧:一、業(yè)務(wù)需求及實現(xiàn)效果 項目涉及到訂單模塊,那天突然接到一個需求,說是兩種不同狀態(tài)的訂單之間要實現(xiàn)插單的效果,頁面上呈現(xiàn)方式是:左右兩個Table,左邊Table里面是狀態(tài)為1的訂單,右邊Table里面是狀態(tài)為2訂單,左邊Table里面的行數(shù)據(jù)拖動到右邊Tabl
        推薦度:
        標(biāo)簽: 拖動 table 表表格
        • 熱門焦點(diǎn)

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 好看的电影网站亚洲一区| 牛牛在线精品观看免费正| 久久中文字幕免费视频| 亚洲色欲色欲www在线丝| 亚洲欧洲精品一区二区三区| 精品一卡2卡三卡4卡免费视频| 99久久国产热无码精品免费| 亚洲区日韩区无码区| 九九久久精品国产免费看小说| 午夜国产精品免费观看| 亚洲精品伊人久久久久| 噼里啪啦电影在线观看免费高清| 精品国产_亚洲人成在线高清| 亚洲精品久久无码av片俺去也 | 亚洲Av无码专区国产乱码DVD | 亚洲AV成人片色在线观看| 亚洲精品123区在线观看| 97人妻精品全国免费视频| 亚洲激情中文字幕| 久久受www免费人成_看片中文| 国产AV无码专区亚洲Av| 久久久久久一品道精品免费看| 亚洲精品无码久久不卡| a级毛片毛片免费观看永久| 又黄又爽无遮挡免费视频| 久久国产精品免费| 亚洲第一区在线观看| 亚洲国产无线乱码在线观看| 国产无遮挡又黄又爽免费视频| 亚洲国产美女精品久久久久| 免费国产a国产片高清| 成人免费区一区二区三区| youjizz亚洲| 4虎永免费最新永久免费地址| 亚洲国产二区三区久久| 免费观看的a级毛片的网站| 国内精品免费久久影院| 国产午夜亚洲精品国产| 亚洲精品高清无码视频| 色妞WWW精品免费视频| 国产成人精品亚洲2020|