在layer弹出层中通过ajax返回html拼接字符串填充数据的方法

1,在给一个layer弹出层做checkbox自动选中时,ViewBag传递的时object类型,用不了lambda表达式,代码如下,

 @foreach (var perm in ViewBag.allPerms)
 {
  <input type="checkbox" id="permissionIds_@perm.Id"
   name="PermissionIds" value="@perm.Id"
 checked="@(ViewBag.RolePerms.Select(r=>r.Id).Contains(perm.Id))"/>
   <label for="permissionIds_@perm.Id">@perm.Name</label>
 }

2,于是在弹出层就不写foreach循环遍历checkbox,直接在点击编辑事件时的弹出层中 ‘添加层弹出后的成功回调方法success' ,在里面通过ajax填充数据

Control中Edit方法获取数据

 //填充角色数据并显示
 public ActionResult Edit(long roleId = 0)
 {
  if (roleId == 0)
  {
   return Json(new JsonData { State = 0, ErrorMsg = "角色不存在!" });
   }
   var role = RoleService.GetById(roleId);
   if (role==null)
  {
   return Json(new JsonData { State = 0, ErrorMsg = "角色Id不存在!" });
   }
   var allPerms = PermissionService.GetAll();
   var rolePerms = PermissionService.GetByRoleId(roleId);
   RoleEditGetModel model = new RoleEditGetModel();
   model.RolePerms = rolePerms;
   model.AllPerms = allPerms;
   return Json(new JsonData { State = 1, Data = model });
 }

View中Layer弹出层success方法

success: function (layero, index) {
     //填充数据
     $.ajax({
      url: "/Role/Edit?roleId=" + id,
      type: "post",
      dataType: "json",
      success: function (res) {
       if (res.State == 1) {
        var html = "";
        var bool = false;
        for (var i = 0; i < res.Data.AllPerms.length; i++) {
         bool = false;
         for (var j = 0; j < res.Data.RolePerms.length; j++) {
          if (res.Data.RolePerms[j].Id == res.Data.AllPerms[i].Id) {
           bool = true;
           break;
          }
         }
         html += ' <input ' + (bool ? "checked" : "") + ' type="checkbox" id="permissionIds_' + res.Data.AllPerms[i].Id + '" name="PermissionIds" value="' + res.Data.AllPerms[i].Id + '" />
         <label for="permissionIds_' + res.Data.AllPerms[i].Id + '">' + res.Data.AllPerms[i].Name + '</label>'
        }
        $("#formValue").html(html);
       }
      },
      error: function () {
       layer.alert('网络请求失败!', {
        title: '提示框',
        icon: 0,
       });
      }
     });
    },

总结

以上所述是小编给大家介绍的在layer弹出层中通过ajax返回html拼接字符串填充数据,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!

(0)

相关推荐

  • layer弹出层框架alert与msg详解

    layer至今仍作为layui的代表作,她的受众广泛并非偶然,而是这五年多的坚持,不断完善和维护.不断建设和提升社区服务,使得猿们纷纷自发传播,乃至于成为今天的Layui最强劲的源动力.目前,layer已成为国内最多人使用的web弹层组件,GitHub自然Stars3000+,官网累计下载量达30w+,大概有20万Web平台正在使用layer. 在贴出代码 layer.alert('见到你真的很高兴', {icon: 6}); 这是一个最简单的弹出层,可根据icon配置左边的图标 通常情况下,除

  • 详解Layer弹出层样式

    前言:学习layer弹出框,之前项目是用bootstrap模态框,后来改用layer弹出框,在文章的后面,我会分享项目的一些代码(我自己写的). layer至今仍作为layui的代表作,她的受众广泛并非偶然,而是这五年多的坚持,不断完善和维护.不断建设和提升社区服务,使得猿们纷纷自发传播,乃至于成为今天的Layui最强劲的源动力.目前,layer已成为国内最多人使用的web弹层组件,GitHub自然Stars3000+,官网累计下载量达30w+,大概有20万Web平台正在使用layer. 具体请

  • web 前端常用组件之Layer弹出层组件

    经手几个项目,还是感觉 Layer 用起来比较的轻松,你能想到的 Layer 都能帮你做到. 感谢 Layer 作者贤心,Layer 官网地址:http://layer.layui.com/ 1. Layer 使用特点 Layer 具备全方位的解决方案,致力于服务各水平段的开发人员,让页面轻松地拥有丰富友好的操作体验. Layer 尽可能地在以更少的代码展现更强健的功能,注重性能的提升.易用和实用性.. Layer 兼容了包括IE6在内的所有主流浏览器. 数量可观的接口,可以自定义需要的风格,每

  • jQuery使用Layer弹出层插件闪退问题

    一.前言 巨坑,基础没学好,导致找了一个下午的问题,终于被我发现了.说多都是泪,记录下来,以后有人遇到这个错误可以参考下 做项目期间做了几个页面,需要用到弹出层,为了方便使用到了Layer的插件,然后写点击事件在form表单中(第一个坑),接着,又使用button按钮(悲剧的开始),同样放在form表单下.想要的效果就是当我点击按钮的时候,就弹出层.(悲剧) 好了,巨坑开始,一开始页面打好之后,就放到SSM框架中,出现的问题一开始就是404地址找不到,使用绝对定位不行,浏览器报的错误一直是错误的

  • jQuery、layer实现弹出层的打开、关闭功能

    打开弹出层: 在list页面带入layer.js 在list页面点击时,弹出form弹出层,list.js: $(".add_category,.update").click(function(){ //弹出框 var doMain = $('.domain_name').val(); layer.open({ shade: [0.5, '#000', false], type: 2, area: ['900px', '530px'], fix: false, //不固定 maxmin

  • jQuery Layer弹出层传值到父页面的实现代码

    目前做的项目中用到layer弹层传值,弹层输入框输入文本,点击确定按钮,父页面的树结构,会自动添加分组. 在此粘贴下代码,以后遇到,方便回忆,如有疑问请留言,或许会为您解答 $(document).ready(function(){ //添加任务弹出层 addTask(); }); //弹出层 function addTask(){ $('[data-id="addList"]').on('click', function(){ layer.open({ type: 2,title:

  • layer实现关闭弹出层刷新父界面功能详解

    本文实例讲述了layer实现关闭弹出层刷新父界面功能.分享给大家供大家参考,具体如下: layer是一款近年来备受青睐的web弹层组件,她具备全方位的解决方案,致力于服务各水平段的开发人员,您的页面会轻松地拥有丰富友好的操作体验. 最近一个项目采用的是hui前端框架,他的弹出层就是用的layer插件,对于弹出层,有一个操作体验大家都知道,就是关闭弹出层,需要刷新父页面.开始写的时候,我陷入了自己的误区,在弹出层处理成功之后,我调用的是: var index = parent.layer.getF

  • 在layer弹出层中通过ajax返回html拼接字符串填充数据的方法

    1,在给一个layer弹出层做checkbox自动选中时,ViewBag传递的时object类型,用不了lambda表达式,代码如下, @foreach (var perm in ViewBag.allPerms) { <input type="checkbox" id="permissionIds_@perm.Id" name="PermissionIds" value="@perm.Id" checked="

  • layer弹出层中H5播放器全屏出错的解决方法

    1. 在layer弹窗组件中 如果使用了flash播放器,全屏是正常的 但若使用了HTML5的播放器,全屏失效 举个栗子 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> <script src="http://lib.sinaapp.com/js/jquery/1.9.1/jquery-1.9.1.min.js

  • 在layui中layer弹出层点击事件无效的解决方法

    1.click只能为页面现有的元素绑定点击事件,如果是动态生成的新的元素,是没有事 件的 2.而(document).on("click","指定的元素",function()); 方法则是将指定的事件绑定在document上,而新产生的元素如果符合指定的元素,那就触发此事件不起作用:(document).on("click","指定的元素",function()); 方法则是将指定的事件绑定在document上,而新产生的元

  • 解决layer弹出层的内容页点击按钮跳转到新的页面问题

    在参与的一个项目中,有一个这样的需求,导入基础数据成功后,默认弹出一个管理员登录页,点击登录按钮,需要跳到管理页面. 导入页按钮: <button type="button" id="start" class="layui-btn layui-btn-radius layui-btn-lg layui-bg-orange btn3"><i>导入</i></button> 导入按钮的点击事件,点击后会

  • 对layer弹出框中icon数字参数的说明介绍

    前言 icon参数为0,如下代码: layer.msg('请选择要编辑的机构', {icon: 0}); 运行结果如图: icon参数为1,如下图 icon参数为2,如下图: icon参数为3,如下图: icon参数为4,如下图: icon参数为5,如下图: icon参数为6,如下图: icon参数为7,如下图: 2. 确认框示例 //锁定机构 function lockOrg(){ var row = orgDataGrid.datagrid('getSelected'); if(row){

  • layer弹出层自定义提交取消按钮的例子

    首先从js开始 /** * 检查是否选中 */ Sendandre.check = function () { var selected = $('#' + this.id).bootstrapTable('getSelections'); if (selected.length === 0) { Feng.info("请先选中表格中的某一记录!"); return false; } else { Sendandre.seItem = selected[0]; console.log(

  • 浅谈layer弹出层按钮颜色修改方法

    layer弹出层有多种格式的弹出,使用方法也不细述. 在弹出确认框可使用confirm或open方式 在open中 layer.open({ content: '确认提交?', btn: ["确认", "取消"], yes: function (index) { somefunciton... layer.close(index) }, btn2: function (index) { } }); layer中确认按钮在第一个位置,展示也是按顺序展示 如果和自己项目

  • layer弹出层扩展主题的方法

    弹出层插件layer确实很强大,官方提供主题太少,但是提供扩展的方式,由于项目使用统一颜色风格,就想扩展一下.官方默认的三种: 1.白蓝(默认) layer.alert('内容');//默认 2.墨绿 layer.alert('内容', { icon: 1, skin: 'layui-layer-molv' }) 3.深蓝 layer.alert('内容', { icon: 1, skin: 'layui-layer-lan' }) ==========重点啦==================

随机推荐