在layer彈出層中通過ajax返回html拼接字符串填充數(shù)據(jù)的方法
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循環(huán)遍歷checkbox,直接在點擊編輯事件時的彈出層中 ‘添加層彈出后的成功回調(diào)方法success' ,在里面通過ajax填充數(shù)據(jù)
control中edit方法獲取數(shù)據(jù)
//填充角色數(shù)據(jù)并顯示 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中l(wèi)ayer彈出層success方法
success: function (layero, index) { //填充數(shù)據(jù) $.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('網(wǎng)絡(luò)請求失??!', { title: '提示框', icon: 0, }); } }); },
總結(jié)
以上所述是小編給大家介紹的在layer彈出層中通過ajax返回html拼接字符串填充數(shù)據(jù),希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對碩編程網(wǎng)站的支持!