详细如下:
父模态窗口里面显示webform1.aspx
webform1.aspx 里面有两个内嵌帧(iframe)第一个iframe里面显示webfor2webform2里面有个树 , 并且有个增加树接点按钮Bt_Add点Bt_Add就会跳出一个子模态窗口,子模态窗口上增加树接点,需要增加之后在父模态窗口中刷新树,显示变化!我搜索了网上一些资料http://search.csdn.net/Expert/topic/1046/1046556.xml?temp=.1521875
这里可以实现刷新, 但是搬到我这里来不行, 可能我这里父窗口也是模态窗口, 所以才不行!!哪位有办法???????????????解决问题再开帖子加分~~
父模态窗口里面显示webform1.aspx
webform1.aspx 里面有两个内嵌帧(iframe)第一个iframe里面显示webfor2webform2里面有个树 , 并且有个增加树接点按钮Bt_Add点Bt_Add就会跳出一个子模态窗口,子模态窗口上增加树接点,需要增加之后在父模态窗口中刷新树,显示变化!我搜索了网上一些资料http://search.csdn.net/Expert/topic/1046/1046556.xml?temp=.1521875
这里可以实现刷新, 但是搬到我这里来不行, 可能我这里父窗口也是模态窗口, 所以才不行!!哪位有办法???????????????解决问题再开帖子加分~~
解决方案 »
- 在后台如何执行前台js事件?急
- 将RadioButton用JS隐藏了,为什么TEXT文本还在
- asp.net页面中显示word内容(按照word中格式)
- 为什么DataList显示不出数据?
- GridView中用BoundField绑定DateTime列的格式问题
- 错误提示:操作必须使用一个可更新的查询。在线求教!
- 如何用ASP.Net从数据库读取数据生成并发送XML数据(不生成XML文件)?
- 为什么从工具箱中添加一个连接对象后,更改其默认连接字符串,在页面的下部就看不到它了,但运行还是正常的?
- 移植问题!!
- 请问:调入ActiveX控件,怎样看它的方法、属性,有没有象C++Builder一样生成头文件,在哪?
- 在线等!!!!朋友帮忙我的代码那里有问题呀!!!(相册)
- 请问用.net如何实现禁止javascript脚本执行,急!!!
in chlid window:function refreshParentWindow()
{
dialogArguments.refresh();
}in parent window:
function refresh()
{
//refresh your treeview
}
{
window.location = window.location;
}
子窗口if(保存成功)
{
window.returnVlaue =1;
window.close();}
===================
我的签名
Response.Write("<script language='javascript'>window.opener.location.reload();self.close();</script>")
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">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>无标题文档</title>
</head><body>
<form id="getForm">
回傳值:<input type="text" id="getData" readOnly>
</form>
<input type="button" value="開啟" onClick="openWin()">
<script language="JavaScript">
function openWin()
{
var srcFile = "BB.htm"; //指定子視窗的位置與檔名
var winFeatures = "dialogHeight:300px; dialogLeft:200px;";
var obj = getForm; //將物件傳遞到新視窗中
window.showModalDialog(srcFile, obj, winFeatures);
}
</script>
</body>
</html>子窗口
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>无标题文档</title>
</head><body>
<form id="sendForm">
請輸入資料:
<input type="text" id="writeData">
<input type="button" value="送出" onClick="send(sendForm.writeData.value);">
</form>
<script language="JavaScript">
function send(val)
{
//取得前一頁所傳過來的物件
var myObj = window.dialogArguments; //賦值
myObj.getData.value = val;
self.close();
}
</script>
</body>
</html>
重载一下父窗口
showModalDialog()、showModelessDialog()方法使用详解 Javascript有许多内建的方法来产生对话框,如:window.alert(), window.confirm(),window.prompt().等。 然而IE提供更多的方法支持对话框。如: showModalDialog() (IE 4+ 支持)
showModelessDialog() (IE 5+ 支持)
window.showModalDialog()方法用来创建一个显示HTML内容的模态对话框,由于是对话框,因此它并没有一般用window.open()打开的窗口的所有属性。
window.showModelessDialog()方法用来创建一个显示HTML内容的非模态对话框。 当我们用showModelessDialog()打开窗口时,不必用window.close()去关闭它,当以非模态方式[IE5]打开时, 打开对话框的窗口仍可以进行其他的操作,即对话框不总是最上面的焦点,当打开它的窗口URL改变时,它自动关闭。而模态[IE4]方式的对话框始终有焦点(焦点不可移走,直到它关闭)。模态对话框和打开它的窗口相联系,因此我们打开另外的窗口时,他们的链接关系依然保存,并且隐藏在活动窗口的下面。使用方法如下:
vReturnValue = window.showModalDialog(sURL [, vArguments] [, sFeatures])
vReturnValue = window.showModelessDialog(sURL [, vArguments] [, sFeatures])
参数说明:
sURL
必选参数,类型:字符串。用来指定对话框要显示的文档的URL。
vArguments
可选参数,类型:变体。用来向对话框传递参数。传递的参数类型不限,包括数组等。对话框通过window.dialogArguments来取得传递进来的参数。
sFeatures
可选参数,类型:字符串。用来描述对话框的外观等信息,可以使用以下的一个或几个,用分号“;”隔开。
dialogHeight 对话框高度,不小于100px,IE4中dialogHeight 和 dialogWidth 默认的单位是em,而IE5中是px,为方便其见,在定义modal方式的对话框时,用px做单位。
dialogWidth: 对话框宽度。
dialogLeft: 距离桌面左的距离。
dialogTop: 离桌面上的距离。
center: {yes | no | 1 | 0 }:窗口是否居中,默认yes,但仍可以指定高度和宽度。
help: {yes | no | 1 | 0 }:是否显示帮助按钮,默认yes。
resizable: {yes | no | 1 | 0 } [IE5+]:是否可被改变大小。默认no。
status: {yes | no | 1 | 0 } [IE5+]:是否显示状态栏。默认为yes[ Modeless]或no[Modal]。
scroll:{ yes | no | 1 | 0 | on | off }:指明对话框是否显示滚动条。默认为yes。 还有几个属性是用在HTA中的,在一般的网页中一般不使用。
dialogHide:{ yes | no | 1 | 0 | on | off }:在打印或者打印预览时对话框是否隐藏。默认为no。
edge:{ sunken | raised }:指明对话框的边框样式。默认为raised。
unadorned:{ yes | no | 1 | 0 | on | off }:默认为no。 传入参数:
要想对话框传递参数,是通过vArguments来进行传递的。类型不限制,对于字符串类型,最大为4096个字符。也可以传递对象,例如: test1.htm
====================
<script>
var mxh1 = new Array("mxh","net_lover","孟子E章")
var mxh2 = window.open("about:blank","window_mxh")
// 向对话框传递数组
window.showModalDialog("test2.htm",mxh1)
// 向对话框传递window对象
window.showModalDialog("test3.htm",mxh2)
</script> test2.htm
====================
<script>
var a = window.dialogArguments
alert("您传递的参数为:" + a)
</script> test3.htm
====================
<script>
var a = window.dialogArguments
alert("您传递的参数为window对象,名称:" + a.name)
</script> 可以通过window.returnValue向打开对话框的窗口返回信息,当然也可以是对象。例如: test4.htm
===================
<script>
var a = window.showModalDialog("test5.htm")
for(i=0;i<a.length;i++) alert(a[i])
</script> test5.htm
===================
<script>
function sendTo()
{
var a=new Array("a","b")
window.returnValue = a
window.close()
}
</script>
<body>
<form>
<input value="返回" type=button onclick="sendTo()">
</form> 常见问题:
1,如何在模态对话框中进行提交而不新开窗口?
如果你 的 浏览器是IE5.5+,可以在对话框中使用带name属性的iframe,提交时可以制定target为该iframe的name。对于IE4+,你可以用高度为0的frame来作:例子, test6.htm
===================
<script>
window.showModalDialog("test7.htm")
</script> test7.htm
===================
if(window.location.search) alert(window.location.search)
<frameset rows="0,*">
<frame src="about:blank">
<frame src="test8.htm">
</frameset> test8.htm
===================
<form target="_self" method="get">
<input name=txt value="test">
<input type=submit>
</form>
<script>
if(window.location.search) alert(window.location.search)
</script>
2,可以通过http://servername/virtualdirname/test.htm?name=mxh方式直接向对话框传递参数吗?
答案是不能。但在frame里是可以的。作者Blog:http://blog.csdn.net/net_lover/
相关文章
.NET Framework 1.1 Service Pack 1 (SP1)修改的Bug列表
在.NET中实现彩色光标,动画光标和自定义光标
在 XSL/XSLT 中实现随机排序
在ASP.NET中跨页面实现多选
在.NET中杀死Word,Excel等进程
=========================================================
// 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
}
}