miniUI 使用 mini.open 传输数据到 新页面
mini.open({
url: "<%=path%>/vacnstandard/modifyDetail.action",
title: "<s:text name="vacnstandard_46"></s:text>", width: 450, height: 400,//修改加班信息
onload: function () {
var iframe = this.getIFrameEl();
var data = {
name: name,
SID: SID,
START_TIME: START_TIME,
END_TIME: END_TIME,
COMPENSATION: COMPENSATION,
OVER_NUM: OVER_NUM,
OVER_TYPE: OVER_TYPE
};
//调用弹出页面方法进行初始化
iframe.contentWindow.SetData(data);
},
ondestroy: function (action) {
grid.reload();
}
});
以上代码中 onload 方法的格式为 miniUI 官网所示的格式,下图所示:
其中,data : { xx:xx } 为要传输到新页面的数据。
最重要的是打开的新页面如何接收这些参数?
还是看代码吧 !
//对应上个页面的mini.open中的SetData() 函数,本页面的SetData()会自动执行,无需主动调用
function SetData(data) {
sid = data.SID;
mini.get("perName").setValue(data.name);
mini.get("startTime").setValue(data.START_TIME);
mini.get("endTime").setValue(data.END_TIME);
mini.get("CompensationWay").setValue(data.COMPENSATION);
mini.get("durationTime").setValue(data.OVER_NUM);
mini.get("OvertimeCategories").setValue(data.OVER_TYPE);
}
答案就是直接定义一个SetData(data) 方法即可,而且不需要去主动调用,它会自动去执行。
而参数的获取方式为 data.参数名 。