一、layui.use

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

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

3、layui.use就是一种加载模块的方式。
如下代码:

  1. //LayUI渲染以及启动模块
  2. layui.use(['form', 'layedit', 'laydate'], function () {
  3. var form = layui.form,//获取form模块
  4. layer = layui.layer,//获取layer模块
  5. layedit = layui.layedit,//获取layedit模块
  6. laydate = layui.laydate,//获取laydate模块
  7. $ = layui.$;

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

  1.      /// <summary>
  2. /// 获取部门信息
  3. /// </summary>
  4. [HttpPost]
  5. public JsonResult GetDeplist()
  6. {
  7. using (ERPEntities db = new ERPEntities())
  8. {
  9. db.Configuration.ProxyCreationEnabled = false;//关闭EF的默认加载
  10. var Deplist = db.dep.ToList();
  11. //将数据Json化并传到前台视图
  12. return Json(new { data = Deplist }, JsonRequestBehavior.AllowGet);
  13. }
  14. }
  15.  
  16.   /// <summary>
  17. /// 通过部门ID来获取角色
  18. /// </summary>
  19. /// <param name="dep_id">部门ID</param>
  20. /// <returns></returns>
  21. [HttpPost]
  22. public JsonResult GetRolelist(int dep_id)
  23. {
  24. using (ERPEntities db = new ERPEntities())
  25. {
  26. db.Configuration.ProxyCreationEnabled = false;//关闭EF的默认加载
  27. var Roles = db.role.Where(r => r.dep_id == dep_id).ToList();//通过部门ID 查找到对应的角色
  28. List<SelectListItem> item = new List<SelectListItem>();
  29. foreach (var Role in Roles)
  30. {
  31. item.Add(new SelectListItem { Text = Role.name, Value = Role.role_id.ToString() });
  32. }
  33. //将数据Json化并传到前台视图
  34. return Json(new { data = item }, JsonRequestBehavior.AllowGet);
  35. }
  36. }

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

  1. <!--部门角色二级联动-->
  2. <div class="layui-form-item">
  3. <label class="layui-form-label">部门:</label>
  4. <div class="layui-input-inline">
  5. <select name="Dep" lay-filter="parentDep" id="Dep">
  6. <option value="">——请选择部门——</option>
  7. </select>
  8. </div>
  9. <label class="layui-form-label">角色:</label>
  10. <div class="layui-input-inline">
  11. <select name="Role" id="Role" lay-filter="RoleInfo">
  12. <option value="">——请选择角色——</option>
  13. </select>
  14. </div>
  15. </div>

四、JS部分的代码

  注意:有的伙伴可能需要先引入jquery;根据自己的需求以及实际情况进行引入

  1. <script src="~/Scripts/jquery-3.5.1.js"></script>
  2. <script type="text/javascript">
  3. // 封装获取角色的函数:通过部门ID得到角色
  4. function getRoles(data) {
  5. //获取到部门框中的Value部门的ID
  6. var dep_id = {
  7. dep_id: data.value
  8. }
  9. //再利用ajax将数据传到后端,来获取到对应下拉框选项而出现的值
  10. //检查项目添加到下拉框中
  11. $.ajax({
  12. url: "@Url.Action("GetRolelist")",
  13. dataType: 'json',
  14. data: JSON.stringify(dep_id),//将参数Json化,在传递给后台控制器
  15. contentType: "application/json",
  16. type: 'post',
  17. success: function (result) {
  18. console.info(result.data);
  19. $("#Role").empty();//清空下拉框的值
  20. $.each(result.data, function (index, item) {
  21. $('#Role').append(new Option(item.Text, item.Value));// 下拉菜单里添加元素
  22. });
  23. layui.form.render("select");//重新渲染 固定写法
  24. }
  25. });
  26. };
  27. //LayUI渲染以及启动模块
  28. layui.use(['form', 'layedit', 'laydate'], function () {
  29. var form = layui.form,//获取form模块
  30. layer = layui.layer,//获取layer模块
  31. layedit = layui.layedit,//获取layedit模块
  32. laydate = layui.laydate,//获取laydate模块
  33. $ = layui.$;
  34. // 得到部门
  35. $.ajax({
  36. url: "@Url.Action("GetDeplist")",
  37. dataType: 'json',
  38. type: 'post',
  39. success: function (result) {
  40. $.each(result.data, function (index, item) {
  41. $('#Dep').append(new Option(item.name, item.dep_id));// 下拉菜单里添加元素
  42. });
  43. layui.form.render("select");//重新渲染 固定写法
  44. }
  45. });
  46. // 联动
  47. form.on('select(parentDep)', function (data) {
  48. //监听到了下拉框选择的选项,传递过来
  49. //console.info(data);
  50. getRoles(data);
  51. });
  52. });
  53. </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实现下拉框二级联动的更多相关文章

  1. asp 下拉框二级联动

    <script language = "JavaScript"> //js开始 var aaa;//定义aaa变量 aaa=0;//aaa赋0 bb = new Arr ...

  2. django:下拉框二级联动实现

    注意:只列举核心部分代码 前台模板: 第一级下拉菜单: <div class="col-sm-4"> <select data-placeholder=" ...

  3. js下拉框二级关联菜单效果代码具体实现

    这篇文章介绍了js下拉框二级关联菜单效果代码具体实现,有需要的朋友可以参考一下 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transit ...

  4. layui select 下拉框 级联 动态赋值 与获取选中值

    //下拉框必须在 class="layui-form" 里 不然监听事件没有作用 <div class="layui-form" > <div ...

  5. mvc SelectList 给下拉框 @Html.DropDownList绑定值

    后台代码: public class DropController : Controller { // GET: Drop public ActionResult Index() { List< ...

  6. MVC controller序列化下拉框给view

    在开发中遇到的小问题,一个下拉框,一个文本域 ,文本域根据下拉框变化: 由于是一次全部取出的值,下拉框变化不想再去取值: 在后台把值先序列化给前台用 controller: List<Lesso ...

  7. MVC学习系列7--下拉框的联动

    [使用场景:两个DropDownList的联动,选择其中一个DropDownList,然后加载数据到另外的一个DropDownList上] 这里,我打算实现的需求是:有两个DropDownList,一 ...

  8. ASP.NET——实现两个下拉框动态联动

    引入: 在网页中,我们经常会遇到下图中的情况.首先在下拉框中选择所在的省,选择之后,第二个下拉框会自动加载出该省中的市.这样设计极大的方便了用户的查找.那这是如何实现的呢? 1.建立数据库 " ...

  9. 通过创建元素从而实现三个下拉框的联动效果(create.Element("option"))和提交表单时的验证p.match("请选择")

    <html> <head> <meta charset="utf-8"> <title>下拉框</title> < ...

随机推荐

  1. 多用户vps管理面板怎么安装,有没有好用的vps管理工具

    一.VPS安装VPSMate控制面板步骤 1.使用SSH连接到VPS.使用命令获取VPSMate安装包: wget   http://www.vpsmate.org/tools/install.py ...

  2. undefined和nul

  3. Java实现 LeetCode 127 单词接龙

    127. 单词接龙 给定两个单词(beginWord 和 endWord)和一个字典,找到从 beginWord 到 endWord 的最短转换序列的长度.转换需遵循如下规则: 每次转换只能改变一个字 ...

  4. Java实现 蓝桥杯VIP 算法提高 去注释

    算法提高 去注释 时间限制:1.0s 内存限制:256.0MB 去注释 问题 给你一段C++代码,将其中的注释去除后输出剩余的代码. 注释共有两种形式: 1. 行注视:以//开头,一直作用到行尾为止. ...

  5. 使用macaca抓页面元素,执行命令后报安装失败处理Error: Command failed: ……pm install -r "/data/local/tmp/com.macaca.android.testing"

    最近换了小米手机做自动化测试,执行命令的时候报安装失败错误,错误如下 解决:设置小米允许USB安装就好了 pm install -r "/data/local/tmp/com.macaca. ...

  6. 【网页设计】第四周 JavaSript

    第四周  JSP 一  JSP概述 含义: Java Server Pages, 广泛使用的服务器端脚本语言之一:(运行在服务器端  BS结构) 由服务器端的JSP引擎执行JSP代码,然后将结果以HT ...

  7. mysql常见聚合函数

    count():总数量avg():平均数std():标准差sum():求和max():最大值min():最小值 上面的不过多介绍group_concat():分组列值全部展示到一行eg:mysql&g ...

  8. 1.vue的基础认识

    vue 1.基于MvvM MVC--MVVM,是MVC的改进版      MVVM主要是将视图的状态和行为抽象化,把视图和业务逻辑分开      M:模型--存放状态的容器,是以数据为中心的      ...

  9. Spring boot添加配置类@Configuration并初始化@Bean,@Resource和@Autowired都为null

    大写加黑,找了好久@Resource和@Autowired都依赖不到创建的bean的原因:@Bean的方法名即是创建的Bean名称 import org.activiti.engine.Process ...

  10. Spring源码系列(一)--详解介绍bean组件

    简介 spring-bean 组件是 IoC 的核心,我们可以通过BeanFactory来获取所需的对象,对象的实例化.属性装配和初始化都可以交给 spring 来管理. 针对 spring-bean ...