栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

LayUI表格在线编辑动态修改列数据

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

LayUI表格在线编辑动态修改列数据

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 params = new ArrayList();
	if( admin.getAname() != null) { // 昵称不为空 
		sql += " aname = ? , ";
		params.add( admin.getAname() );
	}
	if( admin.getPwd() != null) { // 密码不为空 
		sql += " pwd = md5(?) , ";
		params.add( admin.getPwd() );
	}
	if( !sql.contains(",")) {
		return -1;
	}
	sql = sql.substring(0, sql.lastIndexOf(","));
	// 处理最后一个逗号
	sql += " where aid = ? ";
	if( admin.getAid() == null) {
		return -1;
	}
	params.add( admin.getAid() );
	
	// 底层不是不定参数  故把动态列表转换成数组 传入 否则   类型不匹配会报错
	return db.update(sql, params);
}
 

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));
	}
转载请注明:文章转载自 www.mshxw.com
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号