關(guān)于layui 實現(xiàn)點擊按鈕添加一行(方法渲染創(chuàng)建的table)
目標:layui 實現(xiàn)點擊按鈕添加一行
解決方案:
方案1、table 是用轉(zhuǎn)換靜態(tài)表格的方式創(chuàng)建的,寫一個button,每次點擊按鈕,就添加一個<tr> 標簽;
方案2、table 是用方法渲染的方式創(chuàng)建的,寫一個button,每次點擊按鈕,加載數(shù)據(jù)時添加一個Object;
之前我試過用方案1 來實現(xiàn)該功能,發(fā)現(xiàn)這個方案,代碼量極大,最困難的地方就是在<tr>中加樣式,特別是table中有很多種控件時,樣式的添加非常麻煩 ,可參見點擊打開鏈接
后選擇使用方案2 ,但是遇到了,添加的對象無法通過加載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返回的格式,失??;
2、將url的返回值,以data的array格式返回,并作為變量傳給data;成功。
全部方法如下:
首先:用ajax請求將數(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 : '序號',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 個連續(xù)頁碼
,first: false //不顯示首頁
,last: false //不顯示尾頁
}
, done: function(res, curr, count){
}
});
最后,調(diào)用按鈕的點擊方法
//點擊加號按鈕時,新添一行
$("#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 實現(xiàn)點擊按鈕添加一行(方法渲染創(chuàng)建的table)就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
基于JavaScript實現(xiàn)頁面輪播圖漸變效果的示例代碼
這篇文章主要給大家分享如何使用JavaScript實現(xiàn)一個頁面輪播圖漸變效果,輪播圖是網(wǎng)頁開發(fā)中常見的功能之一,它能夠展示多個圖片或內(nèi)容,并以一定的時間間隔進行自動切換,而通過添加漸變效果,可以讓切換過程更加平滑流暢,感興趣的小伙伴可以自己動手嘗試一下2023-10-10
js監(jiān)聽元素是否出現(xiàn)在可視區(qū)域詳解(IntersectionObserver)
這篇文章主要給大家介紹了關(guān)于js監(jiān)聽元素是否出現(xiàn)在可視區(qū)域(IntersectionObserver)的相關(guān)資料, IntersectionObserver是一個JavaScript API,用于監(jiān)測一個元素與其父元素或視窗的交叉狀態(tài),需要的朋友可以參考下2024-06-06

