關(guān)于layui 實(shí)現(xiàn)點(diǎn)擊按鈕添加一行(方法渲染創(chuàng)建的table)
目標(biāo):layui 實(shí)現(xiàn)點(diǎn)擊按鈕添加一行
解決方案:
方案1、table 是用轉(zhuǎn)換靜態(tài)表格的方式創(chuàng)建的,寫一個(gè)button,每次點(diǎn)擊按鈕,就添加一個(gè)<tr> 標(biāo)簽;
方案2、table 是用方法渲染的方式創(chuàng)建的,寫一個(gè)button,每次點(diǎn)擊按鈕,加載數(shù)據(jù)時(shí)添加一個(gè)Object;
之前我試過用方案1 來實(shí)現(xiàn)該功能,發(fā)現(xiàn)這個(gè)方案,代碼量極大,最困難的地方就是在<tr>中加樣式,特別是table中有很多種控件時(shí),樣式的添加非常麻煩 ,可參見點(diǎn)擊打開鏈接
后選擇使用方案2 ,但是遇到了,添加的對(duì)象無法通過加載url來渲染t
原來的數(shù)據(jù)表格使用方法渲染的方法傳的值,其數(shù)據(jù)是從url中取出,
發(fā)現(xiàn)layui的url傳值方式,數(shù)據(jù)格式必須為:
{"code":0,"msg":"","count":4,"data":[{"colName":"ID","colNo":0,"collator":"","comments":"","dbId":1,"defVal":"","deleted":"","dispersion":0,"domainId":0,"histogram":"","isHide":"","isSerial":"F","isVirtual":"","maxVal":"","minVal":"","notNull":"T","repetRate":0,"scale":-1,"serialId":0,"tableId":1048586,"timestampT":" ","typeName":"INTEGER","varying":"F","vcolNo":0,"vertNo":0}]}
而我在reload方法中存放的data數(shù)據(jù)格式為
[{"colName":"ID1","colNo":0,"collator":"","comments":"","dbId":1,"defVal":"","deleted":"","dispersion":0,"domainId":0,"histogram":"","isHide":"","isSerial":"F","isVirtual":"","maxVal":"","minVal":"","notNull":"T","repetRate":0,"scale":-1,"serialId":0,"tableId":1048586,"timestampT":" ","typeName":"INTEGER","varying":"F","vcolNo":0,"vertNo":0}]
因此,解決方案:
1、將新增的data格式修改為url返回的格式,失?。?/p>
2、將url的返回值,以data的array格式返回,并作為變量傳給data;成功。
全部方法如下:
首先:用ajax請(qǐng)求將數(shù)據(jù)取出存于變量,將變量賦值給table的data
var tableData=new Array(); // 用于存放表格數(shù)據(jù) $.ajax({ url: "${ctp}/TableOperate/GetColsInfo?tabId=1048586&dbId=1" ,type:"get" ,async:false ,dataType:"json" , success: function(result){ tableData=result; console.log(result); } }); table.render({ elem: '#baseInfo' ,data:tableData ,cols: [[ {title : '序號(hào)',type:'numbers',Width: 20} /* ,{field:'tableId' , title:'tableId' } ,{field:'dbId' , title:'dbId' } */ ,{field:'colNo' , title:'colNo' , sort: true} ,{field:'domainId' , title:'domainId', minWidth: 120, templet: '#switchTpl', unresize: true } ,{field:'colName' , title:'colName' , minWidth: 120, sort: true , edit: 'text'} ,{field:'typeName' , title:'typeName', minWidth: 120, sort: true ,templet: '#selectTpl'} ,{field:'scale' , title:'scale' , minWidth: 80, edit: 'text'} ,{field:'notNull' , title:'notNull' , minWidth: 100, templet: '#switchNullTpl', unresize: true} ]] ,page: { //支持傳入 laypage 組件的所有參數(shù)(某些參數(shù)除外,如:jump/elem) - 詳見文檔 layout: ['limit', 'count', 'prev', 'page', 'next', 'skip'] //自定義分頁布局 ,curr: 1 //設(shè)定初始在第 1 頁 ,groups: 1 //只顯示 1 個(gè)連續(xù)頁碼 ,first: false //不顯示首頁 ,last: false //不顯示尾頁 } , done: function(res, curr, count){ } });
最后,調(diào)用按鈕的點(diǎn)擊方法
//點(diǎn)擊加號(hào)按鈕時(shí),新添一行 $("#addTable").click(function(){ var oldData = table.cache["baseInfo"]; var data1={"colName":"ID2","colNo":0,"collator":"","comments":"","dbId":1,"defVal":"","deleted":"","dispersion":0,"domainId":0,"histogram":"","isHide":"","isSerial":"F","isVirtual":"","maxVal":"","minVal":"","notNull":"T","repetRate":0,"scale":-1,"serialId":0,"tableId":1048586,"timestampT":" ","typeName":"INTEGER","varying":"F","vcolNo":0,"vertNo":0}; oldData.push(data1); table.reload('baseInfo',{ data : oldData }); });
效果如圖所示:
以上這篇關(guān)于layui 實(shí)現(xiàn)點(diǎn)擊按鈕添加一行(方法渲染創(chuàng)建的table)就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- layer.confirm()右邊按鈕實(shí)現(xiàn)href的例子
- 解決layer.confirm快速點(diǎn)擊會(huì)重復(fù)觸發(fā)事件的問題
- 解決layer.confirm選擇完之后消息框不消失的問題
- layer.confirm點(diǎn)擊第一個(gè)按鈕關(guān)閉彈出框的方法
- layer.confirm取消按鈕綁定事件的方法
- layui點(diǎn)擊按鈕頁面會(huì)自動(dòng)刷新的解決方案
- 在Layui中實(shí)現(xiàn)開關(guān)按鈕的效果實(shí)例
- 解決layui頁面按鈕點(diǎn)擊無反應(yīng),也不報(bào)錯(cuò)的問題
- layui的layer.confirm如何獲取按鈕焦點(diǎn)
相關(guān)文章
js實(shí)現(xiàn)點(diǎn)擊鏈接后延遲3秒再跳轉(zhuǎn)的方法
這篇文章主要介紹了js實(shí)現(xiàn)點(diǎn)擊鏈接后延遲3秒再跳轉(zhuǎn)的方法,通過javascript的setTimeout方法實(shí)現(xiàn)延遲跳轉(zhuǎn)的功能,需要的朋友可以參考下2015-06-06JavaScript組合模式學(xué)習(xí)要點(diǎn)
組合模式大概是設(shè)計(jì)模式里面使用最為廣泛的模式之一了,模式本身理解起來也比較簡單,以至于可以毫不費(fèi)力的寫出一個(gè)能用的組合模式偽代碼2016-08-08js實(shí)現(xiàn)瀏覽器的各種菜單命令比如打印、查看源文件等等
瀏覽器的各種菜單命令比如打印、查看源文件、加入收藏等等,這些在js中時(shí)完全可以實(shí)現(xiàn)的,本文搜集整理了一些,感興趣的朋友可以參考下2013-10-10javascript中style.left和offsetLeft的用法說明
本篇文章主要是對(duì)javascript中style.left和offsetLeft的用法進(jìn)行了說明介紹,需要的朋友可以過來參考下,希望對(duì)大家有所幫助2014-03-03IE 上下滾動(dòng)展示模仿Marquee機(jī)制
最近要做一個(gè)大屏幕展示上下滾動(dòng)的列表,而IE自帶的Marquee,無法滿足需要,隨自己寫了一個(gè)滾動(dòng)機(jī)制,代碼在附件中2009-12-12uniapp中canvas繪制圖片內(nèi)容空白報(bào)錯(cuò)的原因及解決
最近有個(gè)需求就是要用canvas畫個(gè)分享的海報(bào),所以這里總結(jié)下,這篇文章主要給大家介紹了關(guān)于uniapp中canvas繪制圖片內(nèi)容空白報(bào)錯(cuò)的原因及解決方法,需要的朋友可以參考下2023-09-09BootStrap Validator 版本差異問題導(dǎo)致的submitHandler失效問題的解決方法
這篇文章主要介紹了BootStrap Validator 版本差異問題導(dǎo)致的submitHandler失效問題的解決方法,下面通過本文給大家詳細(xì)說明一下,需要的朋友可以參考下2016-12-12