LigerUI编辑表格组件单元格校验问题
生活随笔
收集整理的這篇文章主要介紹了
LigerUI编辑表格组件单元格校验问题
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
這幾天在使用LigerUI(版本為1.2.2)編輯表格組件的時候,遇到幾個小問題,從官方demo和api中沒有找到解決的辦法
其中,reRender()函數是從http://www.tuicool.com/articles/ZZnyu2F找到的,新版本沒有這個函數,雖然重新設置了單元格的enabledEdit屬性為false,但是不知道如何阻止編輯單元格,于是這個問題只能通過變通的方式解決
問題2:單元格校驗問題
問題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编辑表格组件单元格校验问题的全部內容,希望文章能夠幫你解決所遇到的問題。

- 上一篇: POJ 1160 Post Office
- 下一篇: spring 初始化数据库