Lauiui によるファイルとデータ テーブルのアップロードに関するいくつかの問題
layui是一款我比较喜欢的框架,它的界面风格和颜色搭配都是让人比较舒服的,所以我非常喜欢使用layui。
接下来就是在工作中使用layui遇到了一些比较细节的问题:
第一:layui上传文件的问题,
第二:layui 表格的问题。
首先第一个问题,就是layui上传文件的问题,首先我们来看layui是如何上传文件的:
function UpdateFile() { layui.use('upload', function () { var upload = layui.upload; //执行实例 var uploadInst = upload.render({ elem: '#upload' //绑定元素 , url: '/ExcelTemplate'//上传接口 , method: 'POST' , type: "file" , accept: 'file' , before: function (obj) { layer.load(); //上传loading } , done: function (res) { //上传完毕回调 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'); } }); }); }
当然你需要在你的页面上定义一个按钮,然后触发点击事件,elem: '#upload' 就是用来与你的上传按钮做绑定了,接下来就是文件类型还有用post来传输。
然后我们需要在后台用一个参数去接收文件。
[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 去接收文件,参数名最好是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 个连续页码 , 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: '结算周期', 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: '创建时间', sort: true, width: 200 }, { field: 'isEnabled', title: '启用', templet: '#checkboxTpl', width: 100 }, { field: 'status', title: '状态', 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会发送get请求到控制器。从而完成与后台的交互。那么如果我们想要点击了checkbox按钮之后,我们选中这一条数据的时候不能删除这条数据怎么办呢?
我们就需要遍历一下这个页面的所有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知识请关注layui使用教程栏目。
以上がLauiui によるファイルとデータ テーブルのアップロードに関するいくつかの問題の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









Layui ログインページジャンプ設定手順: ジャンプコードの追加: ログインフォーム送信ボタンクリックイベントに判定を追加し、ログイン成功後、window.location.href 経由で指定ページにジャンプします。フォーム構成を変更します。lay-filter="login" のフォーム要素に非表示の入力フィールドを追加します。名前は「redirect」、値はターゲット ページ アドレスです。

layui は、フォームのすべてのフィールド データを直接取得する、単一のフォーム要素の値を取得する、formAPI.getVal() メソッドを使用して指定されたフィールド値を取得する、フォーム データをシリアル化するなど、フォーム データを取得するためのさまざまなメソッドを提供します。これを AJAX リクエスト パラメータとして使用し、フォーム送信イベントをリッスンしてデータを取得します。

アダプティブ レイアウトは、layui フレームワークのレスポンシブ レイアウト機能を使用して実現できます。手順には以下が含まれます:layui フレームワークを参照する。アダプティブ レイアウト コンテナを定義し、layui-container クラスを設定します。レスポンシブ ブレークポイント (xs/sm/md/lg) を使用して、特定のブレークポイントの下にある要素を非表示にします。グリッド システム (layui-col-) を使用して要素の幅を指定します。オフセット (layui-offset-) によって間隔を作成します。応答性の高いユーティリティ (layui-invisible/show/block/inline) を使用して、要素の可視性とその表示方法を制御します。

layui を使用してデータを送信する方法は次のとおりです。 Ajax を使用する: リクエスト オブジェクトを作成し、リクエスト パラメーター (URL、メソッド、データ) を設定し、レスポンスを処理します。組み込みメソッドを使用する: $.post、$.get、$.postJSON、$.getJSON などの組み込みメソッドを使用してデータ転送を簡素化します。

Lauiui と Vue の違いは主に機能と懸念事項に反映されます。 Layui は UI 要素の迅速な開発に重点を置き、ページ構築を簡素化するプレハブ コンポーネントを提供します。Vue は、データ バインディング、コンポーネント開発、および状態管理に重点を置いたフルスタック フレームワークで、複雑なアプリケーションの構築により適しています。 Layui は学習が簡単で、ページをすばやく作成するのに適しています。Vue は学習曲線が急ですが、スケーラブルで保守が簡単なアプリケーションの構築に役立ちます。プロジェクトのニーズと開発者のスキル レベルに応じて、適切なフレームワークを選択できます。

layui を実行するには、次の手順を実行します: 1.layui スクリプトをインポートします; 2.layui を初期化します; 3.layui コンポーネントを使用します; 4.layui スタイルをインポートします (オプション); 5. スクリプトの互換性を確認し、その他の考慮事項に注意してください。これらの手順により、layui の機能を使用して Web アプリケーションを構築できます。

layui は、開発者が最新の応答性の高いインタラクティブな Web アプリケーションを迅速に構築できるように、豊富な UI コンポーネント、ツール、機能を提供するフロントエンド UI フレームワークです。その機能には、柔軟で軽量、モジュール式の設計、豊富なコンポーネント、強力なツール、簡単な機能が含まれます。カスタマイズ。管理システム、電子商取引プラットフォーム、コンテンツ管理システム、ソーシャル ネットワーク、モバイル アプリケーションなど、さまざまな Web アプリケーションの開発に広く使用されています。

layui と vue はフロントエンド フレームワークであり、layui は UI コンポーネントとツールを提供する軽量ライブラリであり、vue は UI コンポーネント、状態管理、データ バインディング、ルーティングなどの機能を提供する包括的なフレームワークです。 layui はモジュール型アーキテクチャに基づいており、vue はコンポーネント化されたアーキテクチャに基づいています。 lauiui には小規模なエコシステムがあり、vue には大規模でアクティブなエコシステムがあります。 Lauiui の学習曲線は低く、vue の学習曲線は急です。 Layui は小規模なプロジェクトや UI コンポーネントの迅速な開発に適しており、vue は大規模なプロジェクトや豊富な機能を必要とするシナリオに適しています。
