网页模式窗口的详细介绍
一、需要弹出网页对话窗口的页面
1.使用下拉框的onclick事件触发弹出对话窗口:
<select name = 'pub_level' onclick="fnCallDialog()">
<%wf.ShowScatSelect("----请选择人员类型----,固定人员,客座人员,学生,合同工","----请选择人员类型----");%>
</select>
其中:onclick事件触发js脚本中的fnCallDialog函数。wf.ShowScatSelect是内部类的方法,用于在select元素中显示内容。
2.此页面中的javascript脚本:
<script language = "javascript">
var strStuff_name = "";//接收对话窗口中名为stuff_name的select元素的value值。其形式为(”a,b”);
var strStu_class = "";//接收对话窗口中名为stueff_class的select元素的value值。
//以上二个变量相当于全局变量,均在对话窗口中由sData对象实现赋值。
var strStuff_no = "";//数组,存放被分割的strStuff_name的值。
function fnCallDialog()
{
showModalDialog ("pub.aspx",window,"dialogWidth:350px;dialogHeight:400px");
}
function fnUpdate()
{
strStuff_no = strStuff_name.split(",");
form1.stuff_name.value = strStuff_no[0];
form1.stuff_no.value = strStuff_no[1];
form1.stuff_class.value = strStu_class;
}
</script>
其中:
(1).fnCallDialog函数用于弹出对话窗口,showModalDialog的参数意义为:(”弹出窗口的文件名称”,” 弹出窗口的名字(不是文件名,非必须,可用空代替)”,”窗口的高度,宽度等设置”)。
(2).fnUpdate函数用于接收对话窗口传过来的值,处理后赋给本页面的元素。split(",")方法以","为分隔符将字符串分割,赋给数组。在对话窗口中由sData对象调用。
二、网页对话窗口
1.javascript脚本:
<script language = "javascript">
Function fnGetInfo ()
{
var sData = dialogArguments;//创建dialogArguments的对象,用于访问母页面的对象。
sData.strStuff_name = form1.stuff_name.options [form1.stuff_name.selectedIndex]. value;
sData.strStu_class = form1.stueff_class.options[form1.stueff_class.selectedIndex ].value;
sData.fnUpdate();
}
</script>
其中:fnGetInfo函数用于给母页面中的变量赋值以及调用fnUpdate函数,实现传值。
2.在button元素中调用fnGetInfo()函数:
<form name = 'form1' method = 'post' action = "pub.aspx">
:
:
<select name="stueff_class" size="8" onchange="form1.submit()">//onchange事件重新调用本对话窗口,以便实现多表选择。
<%wf.ShowScatSelect("固定人员,客座人员,学生,合同工",strStu_class);%>
</select>
<select name="stuff_name" size="8">
<%
if(strStu_class == "固定人员")
{
wdm.ShowSelect("select stuff_name,stuff_no fromformal_stuff","stuff_name,stuff_no","stuff_name,stuff_no","stuff_name");
}
else if(strStu_class == "客座人员")
{
:
:
<input type = "button" value ="确定" onclick ="fnGetInfo();window.close ()">//onclick事件实现调用fnGetInfo函数和关闭对话窗口。
三、注意事项
1.执行javascript的函数时,控件必须是form的元素,否则将报错:没有该属性或方法。
2.必须在网页对话窗口的head部分加上<base target="_self">,否则在重新调用窗体时会从新弹出一个新的窗体。
3.在网页对话窗口的<form name = 'form1' method = 'post' action = "pub.aspx">上的action必须指定为本窗体,否则在窗体刷新时弹出的窗体将为action指定的窗体。
本文地址:http://www.45fan.com/dnjc/69289.html