使用layui的的下拉框并回填和开启搜索

一、完成HTML布局并开启搜索功能
开启layui下拉框的搜索功能很简单,只需要设定属性lay-search即可开启。

  <div class="layui-inline">
       <label class="layui-form-label">用户类型</label>
       <div class="layui-input-inline">
              <select id="UserTypesID" lay-search></select>
        </div>
  </div>

二、查询出数据并绑定
1.新建一个实体类SelectVo,id用来接收查询出来的数据的ID,text用来接收下拉框需要显示的文本。

  public class SelectVo
    {
        /// <summary>
        /// 选中值
        /// </summary>
        public int id { get; set; }
        /// <summary>
        /// 显示值
        /// </summary>
        public string text { get; set; }
        
    }

2.查询出数据库中的数据:
先声明一个实体类selectVo集合selctList,然后在数据库中查询出下拉框要显示的数据,id为表格的主键,text为要显示的文本。

    public ActionResult SelcetUserTypes()
        {
            List<SelectVo> selctList = new List<SelectVo>();
            try
            {

                selctList = myModels.SYS_UserTypes
                            .Select(n => new SelectVo
                            {
                                id = n.UserTypesID,
                                text = n.UserTypes.Trim()
                            }).ToList();
            }
            catch (Exception)
            {
                selctList.AddRange(selctList);
            }
            return Json(selctList, JsonRequestBehavior.AllowGet);
        }

3.新建一个方法layuiSelect并建立三个参数:selectId:要绑定的下拉框的id;url:查询数据的路径;value:要回填的数据。利用ajax的方法来异步传递数据。url为传入的url。在ajax请求成功后的回调函数success中来处理数据。判断传入的selectId是否存在“#”,不存在就将“#”加入传入的selectId中。将下拉框清空,为防止存在之前残留的数据。设置下拉框的第一个选项为空。遍历循环传过来的数据data,将数据的text和id都返回到下拉框的菜单中。设置选中的值:判断第三个参数value是否为null、undefined和’’,如果不是,则说明存在选中的值,直接用jQuery设置其值就好了。使用layui的下拉框如果只是写到这里下拉框的数据数不会显示出来的。因为layui将下拉框重新渲染了一遍。因此,使用layui的下拉框需要使用layui.from.render(“select”)重新渲染一次。


        //layui创建下拉框
        function layuiSelect(selectId, url, value) {
            $.ajax({
                url: url,
                dataType: 'json',
                type: 'post',
                success: function (data) {
                    if (selectId.indexOf('#') != 0) {
                        selectId = '#' + selectId;
                    }
                    $(selectId).empty();
                    $(selectId).append(new Option("", 0));
                    $.each(data, function (index, item) {
                        $(selectId).append(new Option(item.text, item.id));// 下拉菜单里添加元素
                    });
                    //设置选中值
                    if (value != undefined && value != null && value != '') {
                        $(selectId).val(value);
                    }
                    layui.form.render("select");
                    //重新渲染 固定写法
                }
            })
        }

4.调用方法创建下拉框菜单
在需要使用下拉框的地方之间调用之前创建的方法,按照方法传入参数。若下拉框不需要设置其选中的值,第三个参数可以不传入。

 //绑定用户类型下拉框
 layuiSelect("userTypesID", "@Url.Content("~")EssentialInformation/MentorInfoImport/SelcetUserTypes", checkStatus.data[0].UserTypesID);
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值