弹出窗口将参数值回传到父窗口

方法1:window.open
    father webform
    按钮<asp:button id="Button2" runat="server" Text="Button"></asp:button>  
    显示返回值的文本框<INPUT id="txt" type="text" runat="server">,这里一定要是htmlcontrol,如果是webcontrol是得不到返回值的。

private void Button2_Click(object sender, System.EventArgs e)
  {
   Response.Write("<script>window.open('son.aspx')</script>");
  }

son webform
    <INPUT id="ipload" runat="server" style="Z-INDEX: 101; LEFT: 232px; POSITION: absolute; TOP: 64px"
    type="file">上传文件的控件
   <asp:Button id="Button1" style="Z-INDEX: 102; LEFT: 280px; POSITION: absolute; TOP: 136px" runat="server"  Text="Button"></asp:Button>
button事件里面的内容是:
   Response.Write("<script>window.opener.document.all['txt'].value='"+ipload.PostedFile.FileName.ToString()+"';</script>");
   Response.Write("<script>window.opener.forms[0].submit();</script>");
   Response.Write("<script>window.close();</script>");

方法2  window.showModalDialog()
父窗口
    <asp:button id="Button1" style="Z-INDEX: 101; LEFT: 216px; POSITION: absolute; TOP: 72px" runat="server"
    Text="Button"></asp:button><asp:label id="Label1" style="Z-INDEX: 102; LEFT: 304px; POSITION: absolute; TOP: 184px" runat="server">Label</asp:label>
   <DIV id="lab" style="DISPLAY: inline; Z-INDEX: 103; LEFT: 368px; WIDTH: 208px; POSITION: absolute; TOP: 32px; HEIGHT: 67px"
    runat="server" ms_positioning="FlowLayout"></DIV>
   <INPUT id="txt" style="Z-INDEX: 104; LEFT: 160px; POSITION: absolute; TOP: 128px" type="text"
    runat="server">
   <script language="javascript">
   function openmode()
   {
    var returnValue=window.showModalDialog("popup.aspx");
    document.Form1.TextBox1.value=returnValue;
   
   }
   </script>
   <asp:TextBox id="TextBox1" style="Z-INDEX: 105; LEFT: 168px; POSITION: absolute; TOP: 224px"
    runat="server"></asp:TextBox>

code behind那边
private void Page_Load(object sender, System.EventArgs e)
  {
   Button1.Attributes.Add("onclick","openmode()");   
  }
子页面
this.Label1.Text=upload.PostedFile.FileName.ToString();
   string [] tmp=this.Label1.Text.ToString().Split('\\');
   string temp="";
   for(int i=0;i<tmp.Length;i++)
   {
    temp=temp+tmp[i]+"\\\\";
   }
   temp=temp.Substring(0,temp.Length-2);

   this.TextBox1.Text=temp;
   Response.Write("<script>window.returnValue='"+temp+"';</script>");
  // Response.Write("<script>window.close();</script>");

posted on 2005-08-03 13:45  zz  阅读(621)  评论(0)    收藏  举报

导航