LayUI表格在线编辑动态修改列数据
每次只能修改指定属性是 edit 定义的 列
{field:'aname', width:80, title: '昵称', minWidth: 100, edit: 'text', algin : 'center',templet : function( res ){
return res.aname == "null" ? '未知' : res.aname;
}}
点击列修改数据 失焦触发修改请求 实现数据的修改
实际操作中发现因为每次修改的内容不同 发送到后台的键值对也需要同步变化
数据模拟
// 当 field变量变化时 params对象中的键 也会同步变化 只要套上中括号[ ] 对field变量解析就行
let params = { [field] : util.escape(value) };
console.log( params ); // aObject { aname: "张无忌" }
请求测试
//监听单元格编辑
table.on('edit', function(obj){
var value = obj.value //得到修改后的值
,data = obj.data //得到所在行所有键值
,field = obj.field; //得到字段
// layer.msg('[AID: '+ data.aid +'] ' + field + ' 字段更改值为:'+ util.escape(value));
// TODO 管理员信息修改 注意: filed 放在请求参数中 做键时 动态键变化
// 方案二 JSON对象中解析 动态键 []
$.post("../../admin/updateInfo", { aid : data.aid, [field] : util.escape(value)}, res=>{
if( res > 0 ){ // 密码更新成功
showMsg("管理员信息修改成功...")
return;
}
showMsg("管理员信息修改失败...")
})
});
DAO层动态SQL实现
// 动态SQL 修改不同的用户信息
@Override
public int update(AdminInfo admin) {
DBHelper db = new DBHelper();
String sql = "update admininfo set ";
List
Controller层 转换成对象
// 修改管理员信息 账号 和 密码 等信息 admin/updateInfo
protected void updateInfo(HttpServletRequest request, HttpServletResponse response) throws IOException {
// 请求参数封装成对象
AdminInfo admin = RequestToObject.getParamesToObject(AdminInfo.class, request);
IAdminInfoBiz biz = new AdminInfoBizImpl();
this.send(response, biz.update(admin));
}



