日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

data layui table 排序_浅谈layui中table的sort排序

發布時間:2023/12/3 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 data layui table 排序_浅谈layui中table的sort排序 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

table模塊是layui框架最核心的組成之一,它用于對表格進行一些列功能和動態化數據操作,本文介紹了layui中table的sort排序,解決了在我們使用sort排序時可能遇到的一些問題。

今天來談談table sort的那點事。預告一下,目的是做到前臺排序還有服務器排序區分開,目前的table的分頁實際是比較“亂”的,相信很多用的有一段時間的特別是做server排序的同學都會多多少少遇到不正常的情況。

先看看目前layui自帶的排序的效果,中文按字典排序這些不是本次討論的重點,先看看如果存在整數負數還有0出現的情況

那么是不是調整一下sort里面的邏輯就可以了讓它對負數和0的判斷邏輯對了就好了。這個其實也不是這次討論的重點。

那么重點是,server排序,實際上絕大部分的table的排序不會只是單頁面的這樣子簡單的排序,而是把條件傳到后臺讓后臺排序,那么官方給出的一般是監聽sort然后reload,把條件傳過去,這些都很ok,邏輯都沒問題。

but實際得到的效果呢?因為目前table沒有區分前臺排序還是server排序,在接收到數據之后再渲染表格的時候判斷到有initSort,那么會再次將數據排序,然后顯示,這就存在一個非常嚴重的問題!

明明server已經排好序了,為啥還要js里面再sort一下,更嚴重的是,能保證sort出來的結果跟后臺排序的規則出來的結果一致么?拿什么保證呢?

看看下面的代碼監聽reload的時候然后模擬后臺把數據按照負數<0

代碼:

效果

可能你會覺得跟前面沒啥區別呀,排序的時候還是錯了呀,這正是異常的地方。看看我模擬返回的data里面的結構吧

原始的data:

模擬的接口返回的data:

這個返回之后顯然顯示的效果跟實際數據的順序對不上號

原因就是上面說的,實際發后臺排序的時候到了渲染的時候還是要走一次前臺排序,等于是做了一個畫蛇添足的處理。實際如果我們定義成server排序返回的數據就是要顯示的順序了。

絕對不能再走前端sort一下這個邏輯,不然后臺排序的意義是什么還有如何保證邏輯跟后臺是一致的,一致的話頂多算是一個無用功,但是如果不能保證一致,這個就是一個大事故了。

解決方案:提供用戶一個配置項,決定是前臺排序還是server排序。修改如下

需要修改的原始代碼區域

修改之后的對應區域的代碼:

測試的table在render的時候加入了sortType的配置

最后是sort的監聽

最后的效果

完整的測試代碼還有對table.js的對應修改的地址: https://pan.baidu.com/s/1OjwwVmjy02wRQ0rT1euLlQ

更多web前端開發知識,請查閱 HTML中文網 !!

總結

以上是生活随笔為你收集整理的data layui table 排序_浅谈layui中table的sort排序的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。