模态窗口传值

    技术2022-05-11  86

    ---- 1. 基本语法 ---- window对象有一个方法称为showModalDialog,我们可以在页面按钮的onclick中写如下代码: < BUTTON οnclick="window.showModalDialog('dialog.htm')" >Search< /BUTTON >---- 系统会在新窗口中打开dialog.htm页面,并且等待用户响应,如果用户不响应该页面,那么主页面将得不到光标。 ---- 在dialog.htm中设置window对象的returnValue属性,就可以让主页面得到返回值。例如,在页面的确定按钮的onclick中写: window.returnValue = window. document.all.iptPeopleID.value---- 将输入框iptPeopleID的值赋给window对象的returnValue属性。在主页面中就可以得到这个值:     var str = showModalDialog("dialog1.htm")---- 2. 传递初始化值 ---- 如果要向模态页面中传递初始化值,可以在主页面中用如下语句: var cSearchValue=showModalDialog('dialog.htm', 'ABC')在dialog.htm中使用window.dialogArguments属性可以得到'ABC'。

    例如:< SCRIPT FOR=window EVENT=onload LANGUAGE="JScript" >if (window.dialogArguments != null)        window.document.all.iptPeopleID.value = window.dialogArguments;< /SCRIPT >---- 3. 传递多个数值 ---- 如果要向模态页面中传递多个参数,可以先在主页面中定义一个对象, function myDialog() {    var str1;    var str2;}---- 显示模态页面之前初始化该对象,然后调用showModalDialog方法。 function WelcomeYou(iniStr1,iniStr2) {    myDialog.str1 = iniStr1;    myDialog.str2 =iniStr2 ;if (showModalDialog("dialog2.htm", myDialog)==false) //将对象传入......---- 在模态页面中,可以用这样的代码 window.document.all.iptID.value= window.dialogArguments.str1来引用数值,或者用这样的代码对之赋值window.dialogArguments.str1 =window.document.all.iptID.value---- 完整例程如下: ---- 对于只传递一个参数的情况,见:Main1.htm和dialog1.htm。 ---- 对于传递多个参数的情况,见:Main2.htm和dialog2.htm。 父窗体:dim xxx '返回值dim yyy '传到子窗体的参数 var xxx = ShowModalDialog('xxx.asp','yyy','dialogWidth:100px;DialogHeight=290px;status:no')子窗体:dim yyy '从父窗体传来的参数dim xxx '传回父窗体的参数 yyy = window.dialogArgumentsxxx = window.returnValue  

     

    32.关于模态窗口(showModalDialog)的专题讨论! 详细见模态窗口压缩包

    1.模态窗口的打开 2.模态窗口的关闭 3.模态窗口的传递参数。 4.其他。。。。 

    1.window.showModalDialog("DialogPage.aspx","newwin","dialogHeight: 200px; dialogWidth: 150px; dialogTop: 458px; dialogLeft: 166px; edge: Raised; center: Yes; help: Yes; resizable: Yes; status: Yes;"); 

    2.window.close(); 

    3.传值 ParentPage.aspx: window.showModalDialog("DialogPage.aspx?para1=aaa¶2=bbb"); 

    DialogPage.aspx: string str1=Request.QueryString["para1"].toString(); string str2=Request.QueryString["para2"].toString(); 

    返回值 DialogPage.aspx: window.returnvalue="aaa"; 

    ParentPage.aspx: <script language="jscript">function DeptReturn(){var result = window.showModalDialog('DialogPage.aspx','','width=700,height=400,top=150,left=200,toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=no');if (result){document.aspnetForm.ctl00_contentplaceHolder1_TextBox3.value=result; //在master页面下控件的名是这样,非master的页面 var tb=document.getElementById ("文本框控件名txtAssessid"); tb.value = result;}}</script>

    ParentPage.aspx.csButtonDept.Attributes["onclick"] = "return DeptReturn();";

    4. aspx页面在showmodeldialog情况下为什么一提交就重新打开一个页面? showmodaldialog打开的页面中在<head></head>之间加入一行:<base target="_self">


    最新回复(0)