1. XXXList.jsp 中 dgToolBar 中的自定义函数 funname 方法,原方法在 src/main/webapp/plug-in/tools/curdtools_zh-cn.js 中
<t:dgToolBar title="编辑" icon="icon-edit" url="meetingController.do?goUpdate" funname="update" operationCode="${hideEditButton}"></t:dgToolBar>
/** * 重写更新事件打开窗口 * @param title 编辑框标题 * @param url//目标页面地址 * @param id//主键字段 */ function update(title,url, id,width,height,isRestful) { gridname=id; var rowsData = $('#'+id).datagrid('getSelections'); if (!rowsData || rowsData.length==0) { tip('请选择编辑项目0'); return; } if (rowsData.length>1) { tip('请选择一条记录再编辑'); return; } if(isRestful!='undefined'&&isRestful){ url += '/'+rowsData[0].id; }else{ url += '&id='+rowsData[0].id; } createwindow(title,url,width,height); }
2. XXX-update.jsp 中 FormValidation 里执行 controller 前的方法 beforeSubmit 和回调函数 callback
<t:formvalid formid="formobj" dialog="true" usePlugin="password" layout="table" action="meetingController.do?doUpdate" beforeSubmit="checkSubmit" callback="@Override afterUpdate">
beforeSubmit : 表单提交前的处理函数,直接调用就好了
callback : 表单提交完成后的回调函数,如果 dialog="true"的话 callback="@Override functionName" 调用的是当前页面的方法, callback="functionName" 调用的是父页面的方法 如果 dialog="false" callback="functionName" 调用的是 当前页面的方法, 系统自带的回调方法可以自动关闭编辑窗口和右下角显示提示信息,方法我也写在下面重写的方法里了
/** * 重写编辑的回调函数 * @param data * @returns {boolean} */ function afterUpdate(data) { var win = frameElement.api.opener; if (data.success == true) { frameElement.api.close(); win.tip(data.msg); } else { if (data.responseText == '' || data.responseText == undefined) { $.messager.alert('错误', data.msg); $.Hidemsg(); } else { try { var emsg = data.responseText.substring(data.responseText.indexOf('错误描述'), data.responseText.indexOf('错误信息')); $.messager.alert('错误', emsg); $.Hidemsg(); } catch (ex) { $.messager.alert('错误', data.responseText + ""); $.Hidemsg(); } } return false; } win.reloadTable(); }以上在 Jeecg 3.7 版本中使用