弹出窗口将参数值回传到父窗口
方法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>");
浙公网安备 33010602011771号