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实现下拉框二级联动的更多相关文章
- asp 下拉框二级联动
<script language = "JavaScript"> //js开始 var aaa;//定义aaa变量 aaa=0;//aaa赋0 bb = new Arr ...
- django:下拉框二级联动实现
注意:只列举核心部分代码 前台模板: 第一级下拉菜单: <div class="col-sm-4"> <select data-placeholder=" ...
- js下拉框二级关联菜单效果代码具体实现
这篇文章介绍了js下拉框二级关联菜单效果代码具体实现,有需要的朋友可以参考一下 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transit ...
- layui select 下拉框 级联 动态赋值 与获取选中值
//下拉框必须在 class="layui-form" 里 不然监听事件没有作用 <div class="layui-form" > <div ...
- mvc SelectList 给下拉框 @Html.DropDownList绑定值
后台代码: public class DropController : Controller { // GET: Drop public ActionResult Index() { List< ...
- MVC controller序列化下拉框给view
在开发中遇到的小问题,一个下拉框,一个文本域 ,文本域根据下拉框变化: 由于是一次全部取出的值,下拉框变化不想再去取值: 在后台把值先序列化给前台用 controller: List<Lesso ...
- MVC学习系列7--下拉框的联动
[使用场景:两个DropDownList的联动,选择其中一个DropDownList,然后加载数据到另外的一个DropDownList上] 这里,我打算实现的需求是:有两个DropDownList,一 ...
- ASP.NET——实现两个下拉框动态联动
引入: 在网页中,我们经常会遇到下图中的情况.首先在下拉框中选择所在的省,选择之后,第二个下拉框会自动加载出该省中的市.这样设计极大的方便了用户的查找.那这是如何实现的呢? 1.建立数据库 " ...
- 通过创建元素从而实现三个下拉框的联动效果(create.Element("option"))和提交表单时的验证p.match("请选择")
<html> <head> <meta charset="utf-8"> <title>下拉框</title> < ...
随机推荐
- 多用户vps管理面板怎么安装,有没有好用的vps管理工具
一.VPS安装VPSMate控制面板步骤 1.使用SSH连接到VPS.使用命令获取VPSMate安装包: wget http://www.vpsmate.org/tools/install.py ...
- undefined和nul
- Java实现 LeetCode 127 单词接龙
127. 单词接龙 给定两个单词(beginWord 和 endWord)和一个字典,找到从 beginWord 到 endWord 的最短转换序列的长度.转换需遵循如下规则: 每次转换只能改变一个字 ...
- Java实现 蓝桥杯VIP 算法提高 去注释
算法提高 去注释 时间限制:1.0s 内存限制:256.0MB 去注释 问题 给你一段C++代码,将其中的注释去除后输出剩余的代码. 注释共有两种形式: 1. 行注视:以//开头,一直作用到行尾为止. ...
- 使用macaca抓页面元素,执行命令后报安装失败处理Error: Command failed: ……pm install -r "/data/local/tmp/com.macaca.android.testing"
最近换了小米手机做自动化测试,执行命令的时候报安装失败错误,错误如下 解决:设置小米允许USB安装就好了 pm install -r "/data/local/tmp/com.macaca. ...
- 【网页设计】第四周 JavaSript
第四周 JSP 一 JSP概述 含义: Java Server Pages, 广泛使用的服务器端脚本语言之一:(运行在服务器端 BS结构) 由服务器端的JSP引擎执行JSP代码,然后将结果以HT ...
- mysql常见聚合函数
count():总数量avg():平均数std():标准差sum():求和max():最大值min():最小值 上面的不过多介绍group_concat():分组列值全部展示到一行eg:mysql&g ...
- 1.vue的基础认识
vue 1.基于MvvM MVC--MVVM,是MVC的改进版 MVVM主要是将视图的状态和行为抽象化,把视图和业务逻辑分开 M:模型--存放状态的容器,是以数据为中心的 ...
- Spring boot添加配置类@Configuration并初始化@Bean,@Resource和@Autowired都为null
大写加黑,找了好久@Resource和@Autowired都依赖不到创建的bean的原因:@Bean的方法名即是创建的Bean名称 import org.activiti.engine.Process ...
- Spring源码系列(一)--详解介绍bean组件
简介 spring-bean 组件是 IoC 的核心,我们可以通过BeanFactory来获取所需的对象,对象的实例化.属性装配和初始化都可以交给 spring 来管理. 针对 spring-bean ...