Layui數(shù)據(jù)表格 加入 自定義擴(kuò)展方法(重新渲染Render當(dāng)前頁(yè)數(shù)據(jù))
具體開發(fā)中遇到的問(wèn)題如下,
數(shù)據(jù)表格內(nèi)的 內(nèi)容 通過(guò) table.cache["SampleList"] 修改后,重新渲染或重新加載會(huì)導(dǎo)致當(dāng)前操作的分頁(yè) 和 配置被清空。我修改了第5頁(yè)第X行的X列值,重新渲染后就回到了最原始第1頁(yè)或重新調(diào)用了接口。
Layui 官方提供的文檔 提供的刷新表格方法有幾種
1 var obj = table.render({});//生成一個(gè)數(shù)據(jù)表格
1.obj.Reload (這個(gè)方法會(huì)根據(jù)初始化表格的Option {} ,重新調(diào)用接口加載一次)
2.Table.Render(這個(gè)無(wú)效果)
---------------------------------------------------- ---------------------------------------------------- ---------------------------------------------------- ----------------------------------------------------
需要達(dá)到的效果是:
不調(diào)用接口,僅僅只是從table.cache["表ID"] 當(dāng)前頁(yè)緩存里重新渲染,
步驟:
1.將需要修改的列 值 使用table.cache["表ID"][“行索引”]["字段名"]=“xxxx” 進(jìn)行修改
2.調(diào)用自己寫的擴(kuò)展方法,重新渲染到當(dāng)前頁(yè)界面。
這里需要修改 原生js lib\layui\lay\modules\table.js,
將下面的擴(kuò)展方法代碼 加入到 lib\layui\lay\modules\table.js 里,原生js是壓縮了的,這里的demo 格式化了一下。

要加入的擴(kuò)展方法代碼如下:
不壓縮:
YRRender: function(cache) { if (cache == undefined) { console.error("cache參數(shù)為table.cache['表ID']"); return; } var s = { data: cache }; e.renderData(s, e.config.page.curr, e.config.page.limit, !0); }
壓縮后:
YRRender: function (cache) { if (cache == undefined) { console.error("cache參數(shù)為table.cache['表ID']"); return; } var s = { data: cache }; e.renderData(s, e.config.page.curr, e.config.page.limit, !0); }
調(diào)用方法:
將要改的數(shù)據(jù) table.cache["SampleList"] 里 進(jìn)行修改后,
調(diào)用
obj.YRRender(table.cache["SampleList"]);//SampleList即 option 里 elem: '#SampleList' 屬性
效果圖:
這里我用js修改了cache里的數(shù)據(jù),然后調(diào)了YRRender方法。分頁(yè)為改變,也未請(qǐng)求接口


浙公網(wǎng)安備 33010602011771號(hào)