layui是一款我比較喜歡的框架,它的界面風格和顏色搭配都是讓人比較舒服的,所以我非常喜歡使用layui。

作為一家“創(chuàng)意+整合+營銷”的成都網(wǎng)站建設(shè)機構(gòu),我們在業(yè)內(nèi)良好的客戶口碑。創(chuàng)新互聯(lián)提供從前期的網(wǎng)站品牌分析策劃、網(wǎng)站設(shè)計、成都做網(wǎng)站、網(wǎng)站建設(shè)、創(chuàng)意表現(xiàn)、網(wǎng)頁制作、系統(tǒng)開發(fā)以及后續(xù)網(wǎng)站營銷運營等一系列服務(wù),幫助企業(yè)打造創(chuàng)新的互聯(lián)網(wǎng)品牌經(jīng)營模式與有效的網(wǎng)絡(luò)營銷方法,創(chuàng)造更大的價值。
接下來就是在工作中使用layui遇到了一些比較細節(jié)的問題:
第一:layui上傳文件的問題,
第二:layui 表格的問題。
首先第一個問題,就是layui上傳文件的問題,首先我們來看layui是如何上傳文件的:
function UpdateFile() {
layui.use('upload', function () {
var upload = layui.upload;
//執(zhí)行實例
var uploadInst = upload.render({
elem: '#upload' //綁定元素
, url: '/ExcelTemplate'//上傳接口
, method: 'POST'
, type: "file"
, accept: 'file'
, before: function (obj) {
layer.load(); //上傳loading
}
, done: function (res) {
//上傳完畢回調(diào)
if (res) {
layer.closeAll('loading');
var d = dialog({
title: '提示',
content: '上傳模板成功',
width: 200,
ok: function () { self.location.reload(); },
});
d.show();
} else {
layer.closeAll('loading');
var d = dialog({
title: '提示',
content: '上傳模板失敗',
width: 200,
ok: function () { },
});
d.show();
}
}
, error: function () {
layer.closeAll('loading');
}
});
});
}當然你需要在你的頁面上定義一個按鈕,然后觸發(fā)點擊事件,elem: '#upload' 就是用來與你的上傳按鈕做綁定了,接下來就是文件類型還有用post來傳輸。
然后我們需要在后臺用一個參數(shù)去接收文件。
[HttpPost("")]
public IActionResult UploadTemplate(IFormFile file)
{
long dateTime = DateTime.Now.ToFileTimeUtc();
string[] template = file.FileName.Split(new char[] { '\\' }, StringSplitOptions.RemoveEmptyEntries);
string fileName = Path.Combine(hostingEnvironment.WebRootPath, "Upload", "ExcelTemplate", dateTime + "_" + template[template.Length - 1]);
if (System.IO.File.Exists(fileName))
{
System.IO.File.Delete(fileName);
}
try
{
using (FileStream fs = new FileStream(fileName, FileMode.Create))
{
file.CopyTo(fs);
fs.Flush();
return Ok(true);
}
}
catch (Exception)
{
return BadRequest("上傳模板失敗!");
}
}這里是用IFormFile 去接收文件,參數(shù)名最好是file,然后對文件進行操作,那么上傳的文件要怎么才能下載呢,如下:
<script type="text/html" id="down">
<a href="~/Upload/ExcelTemplate/{{d.name}}" download="{{d.name}}" class="layui-table-link">下載</a>
</script>在表格中顯示和下載。
第二就是表格的問題了:
layui.use(['table', 'laypage'], function () {
var laypage = layui.laypage;
var table = layui.table,
form = layui.form;
table.render({
elem: '#PaymentDayList'
, url: '/PaymentDay'
, method: "get"
, height: "auto"
, width: "auto"
, cellMinWidth: 80
, limit: 10
, curr: 1
, request: {
pageName: 'pageIndex'
}
, page: {
layout: ['limit', 'count', 'prev', 'page', 'next', 'skip'] //自定義分頁布局
, groups: 5 //只顯示 1 個連續(xù)頁碼
, first: false //不顯示首頁
, last: false //不顯示尾頁
}
, limits: [10, 20, 50, 100, 500, 1000]
, cols: [[
{ type: "checkbox", fixed: "left" },
{ type: 'numbers', title: '序號' },
{ field: 'name', title: '賬期名稱', sort: true, width: 200 },
{ field: 'settleMentInterval', title: '結(jié)算周期', sort: true, width: 100 },
{ field: 'startTime', title: '賬期起始時間', sort: true, width: 150 },
{ field: 'endTime', title: '賬期終止時間', sort: true, width: 150 },
{ field: 'warnDay', title: '到期提醒日', sort: true, width: 150 },
{ field: 'userName', title: '商保專員', sort: false, width: 100 },
{ field: 'addTime', title: '創(chuàng)建時間', sort: true, width: 200 },
{ field: 'isEnabled', title: '啟用', templet: '#checkboxTpl', width: 100 },
{ field: 'status', title: '狀態(tài)', sort: false, width: 100 },
{ field: 'scope', title: '適用范圍', sort: false, width: 100 },
]]
});
$('#Select').on('click', function () {
table.reload("PaymentDayList", {
page: {
curr: 1
}
, where: {
name: $("#name").val(),
startTime: $("#startTime").val(),
endTime: $("#endTime").val(),
status: $("#type option:selected").val()
}
});
});
form.on('checkbox(lockDemo)', function (obj) {
var isEnable;
obj.elem.checked == true ? isEnable = "啟用" : isEnable = "未啟用";
$.ajax({
url: '/PaymentDay/Enabled/' + obj.value + "/" + isEnable,
type: 'get',
success: function (result) {
if (result.code == 200) {
}
else {
var d = dialog({
title: '提示',
content: '操作失敗!',
ok: function () { },
});
d.show();
}
}
});
});
});這時候有人可能留意到了有一個啟用的checkbox,其中點擊checkbox會發(fā)送get請求到控制器。從而完成與后臺的交互。那么如果我們想要點擊了checkbox按鈕之后,我們選中這一條數(shù)據(jù)的時候不能刪除這條數(shù)據(jù)怎么辦呢?
我們就需要遍歷一下這個頁面的所有checkbox了,如下:
var table = layui.table;
var checkStatus = table.checkStatus('PaymentDayList'), data = checkStatus.data;
if (data.length == 1) {
var check = document.getElementsByName("lock");
for (i = 0; i < check.length; i++) {
if (check[i].value == data[0].id) {
if (check[i].checked) {
var d = dialog({
title: '提示',
content: "啟用了的賬期不能修改",
okValue: '確定',
ok: function () {
}
}).width(200);
d.show();
return;
}
}
}這樣就可以確定哪個是選中的了。
以上就是layui上傳文件與數(shù)據(jù)表格的一些問題的詳細內(nèi)容,更多請關(guān)注創(chuàng)新互聯(lián)其它相關(guān)文章!
文章名稱:layui上傳文件和數(shù)據(jù)表格的方法
網(wǎng)站網(wǎng)址:http://www.chinadenli.net/article6/pgsdog.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供靜態(tài)網(wǎng)站、品牌網(wǎng)站設(shè)計、微信小程序、服務(wù)器托管、網(wǎng)站維護、標簽優(yōu)化
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)