C# MVC 使用LayUI实现下拉框二级联动的功能

 更新时间:2020年06月28日 11:45:11   作者:TomLucas  
这篇文章主要介绍了C# MVC 如何使用LayUI实现下拉框二级联动,文中示例代码非常详细,供大家参考和学习,感兴趣的朋友可以了解下

一、layui.use

1、LayUI的官方使用文档:https://www.layui.com/doc/

2、layui的内置模块不是默认就加载好的,必须要执行启动模块的这种方法后模块才会加载;

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.$;

二、创建控制器或在已有的控制器中添加在操作方法

/// <summary>
  /// 获取部门信息
  /// </summary>
  [HttpPost]
  public JsonResult GetDeplist()
  {
   using (ERPEntities db = new ERPEntities())
   {
    db.Configuration.ProxyCreationEnabled = false;//关闭EF的默认加载
    var Deplist = db.dep.ToList();
    //将数据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;//关闭EF的默认加载
    var Roles = db.role.Where(r => r.dep_id == dep_id).ToList();//通过部门ID 查找到对应的角色
    List<SelectListItem> item = new List<SelectListItem>();
    foreach (var Role in Roles)
    {
     item.Add(new SelectListItem { Text = Role.name, Value = Role.role_id.ToString() });
    }
    //将数据Json化并传到前台视图
    return Json(new { data = item }, JsonRequestBehavior.AllowGet);
   }
  }

三、在需要显示多级联动的视图页面写上如下代码

<!--部门角色二级联动-->
 <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;根据自己的需求以及实际情况进行引入

<script src="~/Scripts/jquery-3.5.1.js"></script>
<script type="text/javascript">
  // 封装获取角色的函数:通过部门ID得到角色
  function getRoles(data) {
   //获取到部门框中的Value部门的ID
   var dep_id = {
    dep_id: data.value
   }
   //再利用ajax将数据传到后端,来获取到对应下拉框选项而出现的值
  //检查项目添加到下拉框中
  $.ajax({
   url: "@Url.Action("GetRolelist")",
   dataType: 'json',
   data: JSON.stringify(dep_id),//将参数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");//重新渲染 固定写法
     }
    });
    // 联动
    form.on('select(parentDep)', function (data) {
     //监听到了下拉框选择的选项,传递过来
     //console.info(data);
     getRoles(data);
    });
  });
</script>

1.select的chage监听事件使用:

form.on('select(myselect)', function(data){}) 其中myselect是select的 lay-filter属性值

2.数据异步加载到select的option中之后,点击该select会发现layui的选中效果不起作用,需要使用
form.render('select');重新渲染一次,就可以正常使用。

联动效果如下:

以上就是C# MVC 使用LayUI实现下拉框二级联动的功能的详细内容,更多关于C# 实现下拉框二级联动的资料请关注脚本之家其它相关文章!

相关文章

  • 使用c#开发公众平台自定义菜单功能

    使用c#开发公众平台自定义菜单功能

    微信公众平台服务号开放了自定义菜单API,本案例介绍C#开发微信公众号自定义菜单功能。在此基础上可以开发更完善的自定义菜单管理功能
    2014-01-01
  • C#执行Javascript代码的几种方法总结

    C#执行Javascript代码的几种方法总结

    本篇文章主要是对C#执行Javascript代码的几种方法进行了详细的总结介绍,需要的朋友可以过来参考下,希望对大家有所帮助
    2014-01-01
  • C#中this的用法集锦

    C#中this的用法集锦

    本文给大家汇总介绍了C#中的几种this用法,相信大家应该有用过,但你用过几种?以下是个人总结的this几种用法,欢迎大家拍砖,废话少说,直接列出用法及相关代码。
    2015-06-06
  • C# Bitmap 复制的小例子

    C# Bitmap 复制的小例子

    这篇文章介绍了C# Bitmap 复制的小例子,有需要的朋友可以参考一下
    2013-10-10
  • Unity创建平铺网格地图的方法

    Unity创建平铺网格地图的方法

    这篇文章主要为大家详细介绍了Unity创建平铺网格地图的方法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-07-07
  • C#实现弹窗提示输入密码

    C#实现弹窗提示输入密码

    这篇文章主要为大家详细介绍了C#实现弹窗提示输入密码,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-02-02
  • C#中把DataTable、Dataset转Json数据

    C#中把DataTable、Dataset转Json数据

    这篇文章介绍了C#中把DataTable、Dataset转Json数据的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-04-04
  • C#调用sql2000存储过程方法小结

    C#调用sql2000存储过程方法小结

    这篇文章主要介绍了C#调用sql2000存储过程的方法,以实例形式分别对调用带输入参数及输出参数的存储过程进行了详细分析,非常具有实用价值,需要的朋友可以参考下
    2014-10-10
  • C#之泛型详解

    C#之泛型详解

    本文详细讲解了C#中的泛型,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-04-04
  • C#中Attribute特性的用法

    C#中Attribute特性的用法

    这篇文章介绍了C#中Attribute特性的用法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-07-07

最新评论