C# MVC 使用LayUI實現(xiàn)下拉框二級聯(lián)動的功能
一、layui.use
1、LayUI的官方使用文檔:https://www.layui.com/doc/
2、layui的內(nèi)置模塊不是默認就加載好的,必須要執(zhí)行啟動模塊的這種方法后模塊才會加載;
3、layui.use就是一種加載模塊的方式。
如下代碼:
//LayUI渲染以及啟動模塊
layui.use(['form', 'layedit', 'laydate'], function () {
var form = layui.form,//獲取form模塊
layer = layui.layer,//獲取layer模塊
layedit = layui.layedit,//獲取layedit模塊
laydate = layui.laydate,//獲取laydate模塊
$ = layui.$;
二、創(chuàng)建控制器或在已有的控制器中添加在操作方法
/// <summary>
/// 獲取部門信息
/// </summary>
[HttpPost]
public JsonResult GetDeplist()
{
using (ERPEntities db = new ERPEntities())
{
db.Configuration.ProxyCreationEnabled = false;//關(guān)閉EF的默認加載
var Deplist = db.dep.ToList();
//將數(shù)據(jù)Json化并傳到前臺視圖
return Json(new { data = Deplist }, JsonRequestBehavior.AllowGet);
}
}
/// <summary>
/// 通過部門ID來獲取角色
/// </summary>
/// <param name="dep_id">部門ID</param>
/// <returns></returns>
[HttpPost]
public JsonResult GetRolelist(int dep_id)
{
using (ERPEntities db = new ERPEntities())
{
db.Configuration.ProxyCreationEnabled = false;//關(guān)閉EF的默認加載
var Roles = db.role.Where(r => r.dep_id == dep_id).ToList();//通過部門ID 查找到對應(yīng)的角色
List<SelectListItem> item = new List<SelectListItem>();
foreach (var Role in Roles)
{
item.Add(new SelectListItem { Text = Role.name, Value = Role.role_id.ToString() });
}
//將數(shù)據(jù)Json化并傳到前臺視圖
return Json(new { data = item }, JsonRequestBehavior.AllowGet);
}
}
三、在需要顯示多級聯(lián)動的視圖頁面寫上如下代碼
<!--部門角色二級聯(lián)動-->
<div class="layui-form-item">
<label class="layui-form-label">部門:</label>
<div class="layui-input-inline">
<select name="Dep" lay-filter="parentDep" id="Dep">
<option value="">——請選擇部門——</option>
</select>
</div>
<label class="layui-form-label">角色:</label>
<div class="layui-input-inline">
<select name="Role" id="Role" lay-filter="RoleInfo">
<option value="">——請選擇角色——</option>
</select>
</div>
</div>
四、JS部分的代碼
注意:有的伙伴可能需要先引入jquery;根據(jù)自己的需求以及實際情況進行引入
<script src="~/Scripts/jquery-3.5.1.js"></script>
<script type="text/javascript">
// 封裝獲取角色的函數(shù):通過部門ID得到角色
function getRoles(data) {
//獲取到部門框中的Value部門的ID
var dep_id = {
dep_id: data.value
}
//再利用ajax將數(shù)據(jù)傳到后端,來獲取到對應(yīng)下拉框選項而出現(xiàn)的值
//檢查項目添加到下拉框中
$.ajax({
url: "@Url.Action("GetRolelist")",
dataType: 'json',
data: JSON.stringify(dep_id),//將參數(shù)Json化,在傳遞給后臺控制器
contentType: "application/json",
type: 'post',
success: function (result) {
console.info(result.data);
$("#Role").empty();//清空下拉框的值
$.each(result.data, function (index, item) {
$('#Role').append(new Option(item.Text, item.Value));// 下拉菜單里添加元素
});
layui.form.render("select");//重新渲染 固定寫法
}
});
};
//LayUI渲染以及啟動模塊
layui.use(['form', 'layedit', 'laydate'], function () {
var form = layui.form,//獲取form模塊
layer = layui.layer,//獲取layer模塊
layedit = layui.layedit,//獲取layedit模塊
laydate = layui.laydate,//獲取laydate模塊
$ = layui.$;
// 得到部門
$.ajax({
url: "@Url.Action("GetDeplist")",
dataType: 'json',
type: 'post',
success: function (result) {
$.each(result.data, function (index, item) {
$('#Dep').append(new Option(item.name, item.dep_id));// 下拉菜單里添加元素
});
layui.form.render("select");//重新渲染 固定寫法
}
});
// 聯(lián)動
form.on('select(parentDep)', function (data) {
//監(jiān)聽到了下拉框選擇的選項,傳遞過來
//console.info(data);
getRoles(data);
});
});
</script>
1.select的chage監(jiān)聽事件使用:
form.on('select(myselect)', function(data){}) 其中myselect是select的 lay-filter屬性值
2.數(shù)據(jù)異步加載到select的option中之后,點擊該select會發(fā)現(xiàn)layui的選中效果不起作用,需要使用
form.render('select');重新渲染一次,就可以正常使用。
聯(lián)動效果如下:

以上就是C# MVC 使用LayUI實現(xiàn)下拉框二級聯(lián)動的功能的詳細內(nèi)容,更多關(guān)于C# 實現(xiàn)下拉框二級聯(lián)動的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
C#12中的Primary?Constructors主構(gòu)造函數(shù)詳解
主構(gòu)造函數(shù)把參數(shù)添加到class與record的類聲明中就是主構(gòu)造函數(shù),這篇文章主要介紹了C#12中的Primary?Constructors 主構(gòu)造函數(shù),需要的朋友可以參考下2023-11-11
C#實現(xiàn)gRPC服務(wù)和調(diào)用示例詳解
gRPC?是一種與語言無關(guān)的高性能遠程過程調(diào)用?(RPC)?框架,這篇文章主要為大家詳細介紹了C#如何實現(xiàn)gRPC服務(wù)和調(diào)用,需要的可以參考一下2024-01-01
Unity通過UGUI的Slider調(diào)整物體顏色
這篇文章主要為大家詳細介紹了Unity通過UGUI的Slider調(diào)整物體顏色,具有一定的參考價值,感興趣的小伙伴們可以參考一下2019-02-02

