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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

LigerUI编辑表格组件单元格校验问题

發布時間:2025/7/14 编程问答 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 LigerUI编辑表格组件单元格校验问题 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

這幾天在使用LigerUI(版本為1.2.2)編輯表格組件的時候,遇到幾個小問題,從官方demo和api中沒有找到解決的辦法

問題1、從數據庫查詢出來的主鍵單元格不可編輯問題

主鍵單元格已經保存之前編輯的數據,由于是主鍵,因此一旦保存就不需要再進行修改

找到了一點兒線索,核心代碼如下:

onBeforeEdit: function (e){if (e.record.editTime) {e.record.id.enabledEdit = false;//dataGrid.reRender();}return true;}
其中,reRender()函數是從http://www.tuicool.com/articles/ZZnyu2F找到的,新版本沒有這個函數,雖然重新設置了單元格的enabledEdit屬性為false,但是不知道如何阻止編輯單元格,于是這個問題只能通過變通的方式解決

變通的解決方式為,在編輯完成后判斷當前記錄是否已經保存過,比如已經有保存時間等屬性,如果已經保存,就自動恢復成編輯之前的數據,核心代碼如下:

onBeforeSubmitEdit: function (e) {//查詢出來的數據id不能修改if (e.column.name == "id" && e.record.editTime) {return false;}}雖然,變通解決了不能修改的問題,但是理想的效果是單元格不可編輯

問題2:單元格校驗問題

可編輯的表格,其中的數據有些是需要進行格式、業務校驗的,雖然有人在ligerGrid的columns中寫了validate屬性,但是不知道如何觸發其中的校驗規則,設置的校驗不能觸發,肯定是不能起作用的,于是這個問題也需要找個變通的方式解決


變通的解決方式為,在保存之前,對每行的數據進行校驗,遍歷每行數據的核心代碼

function validateGrid() {var rows = dataGrid.rows;for (var i = 0; i < rows.length; i++) {if (rows[i].id.length == 0) {$.ligerDialog.warn("第"+(i+1)+"行[編碼]不能為空");return false;}if (rows[i].name.length == 0) {$.ligerDialog.warn("第"+(i+1)+"行[名稱]不能為空");return false;}}return true;}雖然,解決了數據校驗問題,但是校驗不通過的單元格,顯示效果和校驗通過的一樣,效果不是很好


LigerUI使用起來比較簡單,作者也半年左右升級一次,api雖然已有在線版的http://api.ligerui.com/,但是api函數沒有名稱排序,找起來不是很方便,有些函數沒有在api中體現出來,只能查看源碼或者開發工具調試才能找到相關的調用方法,不過還是要贊一個,支持免費、開源的LigerUI


總結

以上是生活随笔為你收集整理的LigerUI编辑表格组件单元格校验问题的全部內容,希望文章能夠幫你解決所遇到的問題。

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