|
表述不是很清晰明了的,有疑问请跟帖..共同学习.
主页面中
window.name='主页面全名'//例如:mainActivity.w,window.name为系统变量直接赋值即可
// 回调接收--方法名随意,内容也随意,这里是一个调用appCommon的刷新方法,实现打开页面修改的数据同步刷新回来当前页面
//由于我这里调用的是appCommon的方法,所以在资源中添加JS,/UI/appCommon/js/appCommon.js,至于appCommon添加不在下列内容之内
window.name='mainActivity.w';
function dataChangeCallBackFun(rowid) {
var dataMain = justep.xbl("dataMain");
appCommon.DataUtils.refreshDataByRowIds(dataMain, rowid, null);
}
打开新页面的url中加上参数callerName,值为window.name。
var process = justep.Context.getCurrentProcess();
var activity = justep.Context.getCurrentActivity();
var rowId = justep.xbl('dataMain').getCurrentRowId();
var url = '/UI/testModel/process/test/testProcess/newActivity.w?process'+process+'&activity='+activity+'&callerName='+window.name+'&rowId='+rowId;
window.Portal.open('新页面标题',url);
新页面中
在需要的dataMain的事件onSaveCommit添加事件
//回调开始--onSaveCommit
function dFacingRecordSaveCommit(event) {
var caller = null;
var callerName = justep.Request.URLParams.callerName;//获取传入的window.name,即主页面全名
if (callerName && (callerName != '')) {//第一个判断条件的含义是,如果callerName有值则为true
var frames = window.parent.frames;//系统自带的变量集合
for (var i = 0; i < frames.length; i++) {
try {
if (frames[i].name == callerName) {//获取当前页面是否打开主页面
caller = frames[i];
break;
}
} catch (e) {
}
}
}
if (caller) {
if (caller.dataChangeCallBackFun) {
var data = justep.xbl('dataMain');//bizData
var rowid = data.getCurrentRowId();
caller.dataChangeCallBackFun(rowid);//传入当前数据的rowId,在回执方法中执行
}
}
}
|
|