今天在项目上遇到了这个问题,其实只是window.returnValue的简单应用,不是ASP。网的专属内容。作为积累,记录一个简单的实现模型
图一用到的文件从图一中我们可以看到,只用到了两个页面,其中Default.aspx作为父页面,Default2.aspx作为子页面被弹出默认值。aspx页面上有两个文本框一个按钮,代码如下:复制代码代码如下:%@页面语言=' c# ' AutoEventWireup=' true ' CodeFile=' Default。aspx。cs ' Inherits=' _ Default ' %!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Transitional//EN ' ' http://www .w3。org/TR/XHTML 1/DTD/XHTML L1-过渡。DTD ' html xmlns=' http://www .w3。org/1999/XHTML ' head runat=' server ' title/title/head body form ID=' form 1 ' runat=' server ' div ' as p 3360 ext box runat=' server ' ID=' a1 '在按钮一的点击事件中,我们注册弹窗脚本,代码如下:复制代码代码如下:受保护的无效按钮1 _ Click(对象发送方,事件参数e){ StringBuilder s=new StringBuilder();追加(“”脚本语言=JavaScript ');追加(' var a=window。showmodaldialog('默认值2。aspx’);');s.Append('if(a!=null)');附加(“document . all”(“textbox 1”).值=a;');附加('/script ');Type cstype=这个.GetType();客户端脚本管理器cs=Page .ClientScript字符串sname=' ltif(!cs .IsStartupScriptRegistered(cs类型,sname)) cs .RegisterStartupScript(cstype,sname,s . ToString());}其中追加(' var a=window。showmodaldialog('默认值2。aspx ');');一句用来弹窗Default2.aspx页面并接收它的返回值。接收了返回值之后我们把它赋值给文本框1。Default2.aspx页面有一个文本框和一个按钮,代码如下:(这里需要注意的是在头里的base target='_self'/标记十分重要。复制代码代码如下:%@页面语言=' c# ' AutoEventWireup=' true ' CodeFile=' default 2。aspx。cs“Inherits=”默认为2 ' % 1!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Transitional//EN ' ' http://www .w3。org/TR/XHTML 1/DTD/XHTML L1-过渡。DTD ' html xmlns=' http://www .w3。org/1999/XHTML ' head title/title base target=' _ self '/head body form ID=' form 1 ' runat=' server ' div ' asp3360 extbox runat=' server ' ID='我们在Default2.aspx页面的按钮_点击事件中使用脚本返回一个值给父页面。代码如下:复制代码代码如下:受保护的无效按钮1 _ Click(对象发送方,事件参数e){ StringBuilder s=new StringBuilder();追加('脚本语言=JavaScript ' ' n’);追加(' window.returnValue=' ' this .GetSelectValue()' ';' n ');附加('窗口。close(); n ');附加('/script ');Type cstype=这个.GetType();客户端脚本管理器cs=Page .ClientScript字符串csname=' ltypeif(!cs .IsStartupScriptRegistered(cs类型,csname)) cs .RegisterStartupScript(cstype,csname,s . ToString());}脚本注册成功之后,我们可以做如下的实验:1)打开Default1.aspx页面在编号为第一等的的文本框中输入数字55,然后点击巴顿
2)在弹窗中输入数字66再点子窗体的按钮关闭子窗体
3)查看结果
从结果中,我们可以看出我们保留了先输入到父窗体中的值,又接收了从子窗体传递过来的值。