搜尋
首頁web前端Layui教程layui中table的sort排序介紹

layui中table的sort排序介紹

Nov 23, 2019 pm 05:30 PM
layuitable

layui中table的sort排序介紹

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

推薦:layui教程

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

layui中table的sort排序介紹那麼是不是調整一下sort裡面的邏輯就可以了讓它對負數和0的判斷邏輯對了就好了。這個其實也不是這次討論的重點。

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

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

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

看看下面的程式碼監聽reload的時候然後模擬後台把資料按照負數

程式碼:

layui中table的sort排序介紹效果

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

原始的data:

layui中table的sort排序介紹模擬的介面回傳的data:

layui中table的sort排序介紹這個回傳之後顯然顯示的效果跟實際資料的順序對不上號

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

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

解決方案:提供使用者一個設定項,決定是前台排序還是server排序。修改如下

需要修改的原始程式碼區域

layui中table的sort排序介紹

修改之後的對應區域的程式碼:

##測試的table在render的時候加入了sortType的設定layui中table的sort排序介紹

最後是sort的監聽layui中table的sort排序介紹

最後的效果layui中table的sort排序介紹

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

以上是layui中table的sort排序介紹的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文轉載於:fly社区。如有侵權,請聯絡admin@php.cn刪除

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

MantisBT

MantisBT

Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

EditPlus 中文破解版

EditPlus 中文破解版

體積小,語法高亮,不支援程式碼提示功能

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強大的PHP整合開發環境

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)