//打开一个模式窗口,向它传递一个值
string ztdm;
ztdm = "传递的帐套代码";
Response.Write("<script Language=JavaScript>");
Response.Write("var var_name;var return_var");
Response.Write("var_name = '"+ztdm+"';");
Response.Write("return_var = showModalDialog('fhdw_list.aspx',var_name);");
Response.Write("</script>");
//这样打开窗口无问题,参数传递也无问题;
单在模式窗口内怎么给本窗口传值呢?Response.Write("<script Language=JavaScript>");
Response.Write("window.returnValue='aaa';");
Response.Write("parent.document.all['fhdw'].text = 'aaaaa';");
Response.Write("window.close();");一直提示parent.document.all['fhdw']为空;我的目的呢,就是从父类窗口上传一个参数到子窗口,然后子窗口根据这个值检索数据,将检索的的数据给父窗口的一个控件;
string ztdm;
ztdm = "传递的帐套代码";
Response.Write("<script Language=JavaScript>");
Response.Write("var var_name;var return_var");
Response.Write("var_name = '"+ztdm+"';");
Response.Write("return_var = showModalDialog('fhdw_list.aspx',var_name);");
Response.Write("</script>");
//这样打开窗口无问题,参数传递也无问题;
单在模式窗口内怎么给本窗口传值呢?Response.Write("<script Language=JavaScript>");
Response.Write("window.returnValue='aaa';");
Response.Write("parent.document.all['fhdw'].text = 'aaaaa';");
Response.Write("window.close();");一直提示parent.document.all['fhdw']为空;我的目的呢,就是从父类窗口上传一个参数到子窗口,然后子窗口根据这个值检索数据,将检索的的数据给父窗口的一个控件;
解决方案 »
- 如何把图片格式的转换为JS
- 如何弹出提示页面
- 网页实现winform
- DropDownList省份关联下拉列表
- 怎么日历控件中的日期显示为汉字,如“30”显示为“今天”
- 【弱弱的求帮】一个特别特别基础的三层概念
- authentication mode="Forms"时,为何Login页面图片无法表示?
- 程序总是出现“ConnectionString 属性尚未初始化”咋回事阿?
- 调试的时候出错System.FormatException: 该字符串未被识别为有效的布尔值(有代码)
- Web聊天室的分屏问题.
- asp.net中使用水晶报表导出???
- Visible= false 隐含了其中一些用户控件,是不是代表着就不运行和显示这个控件,减少了程序运行时间。
调用模式窗口方法:
string ztdm;
ztdm = "传递的帐套代码";
Response.Write("<script Language=JavaScript>");
Response.Write("var var_name;var return_var");
Response.Write("var_name = '"+ztdm+"';");
Response.Write("return_var = showModalDialog('fhdw_list.aspx',var_name);");
Response.Write("if( return_var!= null ) {");
Response.Write("document.all['fhdw'].value = return_var;");
Response.Write("}");
Response.Write("</script>");模式窗口返回值:
Response.Write("<script Language=JavaScript>");
Response.Write("window.returnValue='aaa';");
Response.Write("window.close();");
Response.Write("</script>");
=========================================================
// t1.aspx
<%@ Page language="c#" Codebehind="t1.aspx.cs" AutoEventWireup="false" Inherits="testcry.t1" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
<HEAD>
<title>WebForm1</title>
</HEAD>
<body MS_POSITIONING="GridLayout">
<TABLE height=139 cellSpacing=0 cellPadding=0 width=613 border=0
ms_2d_layout="TRUE">
<TR vAlign=top>
<TD width=10 height=15></TD>
<TD width=603></TD></TR>
<TR vAlign=top>
<TD height=124></TD>
<TD>
<div align="center">
<form id="Form1" method="post" runat="server">
<asp:label id="Label1" runat="server" Font-Bold="true">
从当前页面打开新窗口,并把变量传递到新窗口的例子,可以多次打开提交。
</asp:label><br>
<br>
<asp:textbox id="TextBox1" runat="server" Width="600px">这是初始值,将被传递到新窗口。</asp:textbox><br>
<br>
<asp:button id="Button1" runat="server" Text="打开窗口" Width="96px"></asp:button></form>
</div></TD></TR></TABLE>
</body>
</HTML>
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//t1.aspx.cs
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;namespace testcry
{
/// <summary>
/// t1 的摘要说明。
/// </summary>
public class t1 : System.Web.UI.Page
{
protected System.Web.UI.WebControls.TextBox TextBox1;
protected System.Web.UI.WebControls.Label Label1;
protected System.Web.UI.HtmlControls.HtmlForm Form1;
protected System.Web.UI.WebControls.Button Button1; private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
if (!IsClientScriptBlockRegistered("clientScript"))
{
string vbCrLf="\n";
string strScript = "<script>" + vbCrLf;
strScript += "function OpenWin(){" + vbCrLf;
strScript += "var str=window.showModalDialog('t2.aspx',document.Form1.TextBox1.value)" + vbCrLf;
strScript += "if(str!=null) document.Form1.TextBox1.value=str" + vbCrLf;
strScript += "}" + vbCrLf;
strScript += "</script>" + vbCrLf;
RegisterClientScriptBlock("clientScript", strScript);
Button1.Attributes.Add("onclick","OpenWin()");
}
} #region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
} /// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.Load += new System.EventHandler(this.Page_Load); }
#endregion
}
}~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//t2.aspx
<%@ Page language="c#" Codebehind="t2.aspx.cs" AutoEventWireup="false" Inherits="testcry.t2" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD><TITLE>WebForm2</TITLE>
</HEAD>
<frameset rows="0,*">
<frame src="about:blank">
<frame src="t3.aspx">
</frameset>
</HTML>~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//t2.aspx.cs
无需添加代码~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//t3.aspx 这一页是模式窗口返回值的那一页
<%@ Page language="c#" Codebehind="t3.aspx.cs" AutoEventWireup="false" Inherits="testcry.t3" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<title>WebForm3</title>
<meta name="GENERATOR" content="Microsoft Visual Studio .NET 7.0">
<meta name="CODE_LANGUAGE" content="Visual Basic 7.0">
<meta name="vs_defaultClientScript" content="JavaScript">
<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
</HEAD>
<body MS_POSITIONING="GridLayout" id="MyBody" runat="server">
<form id="Form1" method="post" runat="server">
<asp:Label id="Label1" runat="server">请输入您的大名:</asp:Label><br>
<br>
<asp:TextBox id="TextBox1" runat="server" Width="558"></asp:TextBox><br>
<br>
<asp:Button id="Button1" runat="server" Text=" 提 交 "></asp:Button>
</form>
</body>
</HTML>
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//t3.aspx.csusing System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;namespace testcry
{
/// <summary>
/// t3 的摘要说明。
/// </summary>
public class t3 : System.Web.UI.Page
{
protected System.Web.UI.WebControls.Label Label1;
protected System.Web.UI.WebControls.TextBox TextBox1;
protected System.Web.UI.WebControls.Button Button1;
protected System.Web.UI.HtmlControls.HtmlControl MyBody; private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面 if (IsPostBack)
{
string vbCrLf="\n";
string strScript= "<script>" + vbCrLf;
strScript += "window.parent.returnValue='" + TextBox1.Text.Replace("'", "\'") + "'" + vbCrLf;
strScript += "window.parent.close()" + vbCrLf;
strScript += "</script>" + vbCrLf; if (!IsClientScriptBlockRegistered("clientScript"))
{
RegisterClientScriptBlock("clientScript", strScript);
}
}
if (!IsPostBack)
{
MyBody.Attributes.Add("onload","document.Form1.TextBox1.value=window.parent.dialogArguments");
}
} #region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
} /// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.Load += new System.EventHandler(this.Page_Load); }
#endregion
}
}
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:
var str=window.showModalDialog("DialogPage.aspx");4.
aspx页面在showmodeldialog情况下为什么一提交就重新打开一个页面?
showmodaldialog打开的页面中在<head></head>之间加入一行:<base target="_self">
WebForm2.aspx.vb
Inherits System.Web.UI.Page
Protected WithEvents Button1 As System.Web.UI.WebControls.Button
Protected WithEvents TextBox1 As System.Web.UI.WebControls.TextBox
Protected WithEvents Button2 As System.Web.UI.WebControls.Button
Protected WithEvents TextBox2 As System.Web.UI.WebControls.TextBox
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Button1.Attributes.Add("onclick", "var st=window.showModalDialog('user.aspx?val='+document.all('TextBox1').value);document.all('TextBox1').value=st;return st;")
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
RegisterStartupScript("key", "<script>window.opener=null;window.close(this);</script>")
End Sub
user.aspx.vb
Protected WithEvents TextBox1 As System.Web.UI.WebControls.TextBox
Protected WithEvents cancel As System.Web.UI.WebControls.Button
Protected WithEvents ok As System.Web.UI.WebControls.Button
Protected WithEvents TextBox2 As System.Web.UI.WebControls.TextBox
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim str As String
If Not IsPostBack Then
str = Request.QueryString("val")
TextBox1.Text = str
End If
End Sub
Private Sub cancel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cancel.Click
RegisterStartupScript("key", "<script>window.returnValue='null';window.opener=null;window.close(this);</script>")
End Sub
Private Sub ok_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles ok.Click
RegisterStartupScript("key", "<script>window.returnValue=document.all('TextBox2').value;window.opener=null;window.close(this);</script>")
End Sub