弹出窗口及弹出层

  页面中常常需要用到弹窗的方式打开其它关联页面,弹出窗口的方法有三种:1、弹出层(OpenShowWindow)包括自定义代码链接窗口配置生成两种方式 2、页面跳转(window.location.href) 3、打开新window窗口(window.open()),另外平台提供了OpenWindow函数,该函数封装了上面所说的三种弹窗方法,使用起来较为方便。

弹出层(OpenShowWindow)

  以div层的方式弹出页面。

1、自定义代码

OpenShowWindow方法

var url ="";
var w = new UCML.OpenShowWindow({ frameMode:"frame",maximizable:true,collapsible:true,URL:url,scroll:"yes",
   draggable:true,resizable:true,ratioWidth:90,ratioHeight:90,title:title});
w.on("open",function(){
   //绑定打开窗口事件
})
w.on("close",function(){
   //绑定关闭窗口事件,经常会在关闭窗口时刷新父页面,可在此写刷新的代码
})
w.open();

获取父窗口的对象:window.openerWindow

刷新父窗口BC:window.openerWindow.BCNameBase.Refresh()

刷新父窗口(刷新整个页面):window.openerWindow.location.reload()

关闭本窗口:window.currentWindow.close()

注意:

简化版本:openerWindow可用opener代替,currentWindow可用window代替 

参数说明
frameMode打开窗口的位置。可选值self:本窗口,parent:父窗口,frame:最外框, 默认self
URL打开窗体的URL。字符串,例“a.aspx?Id=3”
draggable是否能被拖动。可选值true:可以,false:不可以,默认为false
resizable是否能改变窗体大小。可选值true:可以,false:不可以,默认false
showShadow是否有阴影。可选值true:有阴影,false:无阴影,默认为true
modal是否有遮盖。可选值true:有,false:无,默认为true
border是否有外框。可选值true:有,false:无,默认false
closable是否有关闭按钮。可选值true:有,false:无,默认为true
title窗体标题。字符串,默认值”请选择....”
height窗体高度。数字,默认600
width窗体宽度。数字,默认600
scroll是否有滚动条。可选值yes/no,默认no
zIndex窗体层的堆叠顺序。数字,默认900
minimizable是否有最小化按钮。可选值true:有,false:没有,默认为false
maximizable是否有最大化按钮。可选值true:有,false:没有,默认为false
collapsible是否有缩小按钮。可选值true:有,false:没有,默认为false
noheader是否无窗体头(没有按钮,标题部分)。可选值true:有,false:无,默认true
maximized打开时最大化。可选值true:最大打开,false:不最大打开,默认false
minimized打开时最小化。可选值true:最小打开,false:不最小打开,默认false
ratioWidth窗口的百分比宽。可选值0-100数字(使用后resizable无效)
ratioHeight窗口的百分比高。可选值0-100数字(使用后resizable无效) 

示例:

 在列表VC上加一个按钮查看选中记录的详情

image.png  

代码:

var w = new UCML.OpenShowWindow({ frameMode: "frame",modal:false, maximizable: true,maximized:false,collapsible: true
,closable:true,collapsible:false, URL: "BusiModelDemo/BusinessUnit/BPO_PO_OderMainEdit719.aspx?BusinessKeyOID="+BC_PO_OderMainList719Base.getOID()
, scroll: "yes", draggable: true,resizable: true, width: 800, height: 600, title: "采购单编辑"});
w.open();

页面效果:

image.png

2、链接窗口配置生成

  如果想通过BCLink链接业务组件的方式点击打开窗口或通过业务视图组件VC上的按钮点击打开窗口则可以分别在BC列信息的链接业务组件处和VC的常用按钮处打开链接窗口配置界面设置相关属性,设置完成后点击确定按钮会生成相关代码.

链接窗口配置界面:

image.png

  可在此配置弹出窗口模式、弹出窗口大小以及开关属性事件、弹出窗口的表单等,确认后生成弹出窗口对应源代码。

生成源代码示例:

var url = "";
var w = new UCML.OpenShowWindow({ frameMode:"frame", maximizable: true,collapsible:true,URL:url, 
scroll:"yes",draggable:true,resizable:true,ratioWidth:90,ratioHeight:90,title:title});
w.open();

可打开链接窗口配置界面的位置如下图:

BC列信息:

image.png

VC常用按钮:

image.png

操作示例:

1、在BC上,选中需要弹出选择框的列点击链接业务窗口,弹出连接窗口配置界面,在此配置弹框的属性、事件、传值定义等。

image.png

  选择弹出表单即选择要弹出的业务单元BPO,可根据业务单元的编号或名称进行查询,选择好BPO后点击选中按钮将该业务单元的路径赋值给选择弹出表单编辑框,标题赋值给窗口标题,并将传值定义标签的来源业务组件和目标业务组件分别赋值为所选BPO的主BC和当前操作的BC,如下图:

image.png

image.png

属性:弹出表单、URL参数、标题、开关属性、窗口大小设置、弹出模式等属性对应OpenShowWindow方法的参数。

事件:可以设置关闭和打开窗口的事件,点击“生成刷新父窗口代码”即在右侧空白处生成对应的代码,对应OpenShowWindow方法的close事件和open事件。

image.png

注意:单行选中数据传值模式下不要生成刷新父窗口代码,因为单行传值是给字段赋值,如果刷新,值就没有了。

传值定义:设置父窗口和子窗口之间的传值定义,包括传值模式、传值字段等。

image.png

设置完成后点击“确定”按钮生成代码如下:

var w = new UCML.OpenShowWindow({ frameMode: "frame",modal:false, maximizable: true,maximized:false,
collapsible: true,closable:true,collapsible:false, URL: "BusiModelDemo/BusinessUnit/BPO_SPRODUCTChoice719.aspx?
targetBC=BC_PO_OrderDetail719&targetFieldList=ItemNo;ItemName&sourceBC=BC_SPRODUCT719&sourceFieldList=
PRODUCTNO;PRODUCTNAME", scroll: "yes", draggable: true,
resizable: true, width: 800, height: 600, title: "产品选取"});
w.open();

sourceBC:来源业务组件

targetBC:目标业务组件

sourceFieldList:来源字段序列

targetFieldList:目标字段序列

2、在弹出窗口的VC中,添加列表单选记录传值的选中按钮,操作如下:

VC下的按钮处右键-->添加常用按钮-->窗口传值常用按钮-->列表单选记录传值按钮

image.png

生成选中按钮及代码:

image.png

sourceBC、targetBC、sourceFieldList、targetFieldList对应链接业务窗口配置生成的URL中的参数。

3、根据当前BC创建编辑视图组件VC,创建业务单元BPO,生成编译

页面效果:

  image.png



页面跳转(window.location.href)

 由当前页面跳转到另一个页面。

代码示例:

window.location.href="BPO_SPRODUCTChoice719.aspx";  //跳转路径为相对路径

打开新window窗口(window.open())

  window.open() 方法用于打开一个新的浏览器窗口

方法:window.open(URL,name,features,replace)

参数说明
URL可选。打开指定的页面的URL。如果没有指定URL,打开与新的空白窗口
name可选。指定target属性或窗口的名称。支持以下值:
  • _blank - URL加载到一个新的窗口。这是默认

  • _parent - URL加载到父框架

  • _self - URL替换当前页面

  • _top - URL替换任何可加载的框架集

  • name - 窗口名称

specs可选。一个逗号分隔的项目列表。支持下面表格中的值。
replaceOptional.Specifies规定了装载到窗口的 URL 是在窗口的浏览历史中创建一个新条目,还是替换浏览历史中的当前条目。支持下面的值:
  • true - URL 替换浏览历史中的当前条目。

  • false - URL 在浏览历史中创建新的条目。

specs属性值:

channelmode=yes|no|1|0是否要在影院模式显示 window。默认是没有的。仅限IE浏览器
directories=yes|no|1|0是否添加目录按钮。默认是肯定的。仅限IE浏览器
fullscreen=yes|no|1|0浏览器是否显示全屏模式。默认是没有的。在全屏模式下的 window,还必须在影院模式。仅限IE浏览器
height=pixels窗口的高度。最小.值为100
left=pixels该窗口的左侧位置
location=yes|no|1|0是否显示地址字段.默认值是yes
menubar=yes|no|1|0是否显示菜单栏.默认值是yes
resizable=yes|no|1|0是否可调整窗口大小.默认值是yes
scrollbars=yes|no|1|0否显示滚动条.默认值是yes
status=yes|no|1|0是否要添加一个状态栏.默认值是yes
titlebar=yes|no|1|0是否显示标题栏.被忽略,除非调用HTML应用程序或一个值得信赖的对话框.默认值是yes
toolbar=yes|no|1|0是否显示浏览器工具栏.默认值是yes
top=pixels窗口顶部的位置.仅限IE浏览器
width=pixels窗口的宽度.最小.值为100

OpenWindow函数

  OpenWindow函数封装了上面所说的三种弹窗方法,使用起来较为方便。

方法:OpenWindow(url,title,[openMode],[config]);

参数说明

   url:需要弹出窗口的url地址

   title:需要弹出窗口的标题

   openMode:非必填弹出窗口的模式,值为1:弹出层  2:页面跳转 3:打开新窗口,默认为1弹出层

   config:非必填项,弹出窗口的属性配置,只在openMode=1时才有用。

绑定事件:

var w = new OpenWindow(URL,"执行任务");
w.on("close",function(){   
  //窗口关闭时,刷新父页面数据
  BCNameBase.Refresh();
});
w.on("open",function(){
  //窗口打开事件
});

弹出层(openMode=1): 

  config为空时,则使用默认的配置为{ frameMode: "frame", maximizable: true,collapsible: true, URL: url, scroll: "yes", draggable: true,resizable: true, title: title};config不为空时弹出窗口适应父窗口宽高度,其他参数参考弹出层(OpenShowWindow)方法的参数说明。

示例:

config为空时:

 var url="BPO_15041.aspx";
 OpenWindow(url,"添加商品信息",1);

config不为空时:

 var url="BPO_15041.aspx";
 var config = {width:1000,height:500,minimizable:true,draggable:true};
 OpenWindow(url,"添加商品信息",1,config);

页面跳转(openMode=2):

 使用此方法页面直接转到目标页面

 var url="BPO_15041.aspx";
 OpenWindow(url,"添加商品信息",2);

打开新窗口(openMode=3):

  将打开一个新的window窗口

 var url="BPO_15041.aspx";
 OpenWindow(url,"添加商品信息",3);

评论

暂无评论!

发表评论