我要实现的功能是,在单击主页面的一个textbox时,通过showModalDialog()弹出一个子窗口,再将此子窗口下的一个值返回给主页面。我的代码如下所示。问题是当我在弹出的子窗口中设置值并点击确认后 此值并不能返回给主页面,也不会关闭(我设置的有让他关闭的功能)。
如果哪位老兄有原码 粘上来就更好了 小弟给你鞠躬了。呵呵
谢谢了先!^_^parent.aspx
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="fu.aspx.cs" Inherits="fu" %>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>无标题页</title>
<script type="text/javascript">function getlqlb()
//这里定义那个弹出窗口的JS。
{
var getlqlb = showModalDialog("son.aspx", "newwin", "dialogWidth:330px;dialogHeight:170px"); //接收从子窗口中传过来的值。
if (getlqlb != null)
{
document.getElementById("<%=TextBox1..ClientID%>") .value=getlqlb; //将已接收的值写入textbox。
}
else
{
alert("No data Returned!");//如果传过来的值为空则弹出一个警告框。
}
}
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:TextBox ID="TextBox1" runat="server" onclick="getlqlb()"></asp:TextBox></div>
</form>
</body>
</html>son.aspx
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="zi.aspx.cs" Inherits="zi" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>无标题页</title>
<base target="_self" />
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:TextBox ID="TextBox2" runat="server"></asp:TextBox> //显示一个文本框
<asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Button" /> //显示一个按钮
</div>
</form>
</body>
</html>son.aspx.csprotected void Button1_Click(object sender, EventArgs e)
{
if (!this.IsPostBack)
{this.RegisterStartupScript("JS", "<script language='javascript' type='text/javascript' defer='defer'>window.returnValue=document.getElementById(+'"+TextBox2+"').value;window.close();</script>");
}
}
如果哪位老兄有原码 粘上来就更好了 小弟给你鞠躬了。呵呵
谢谢了先!^_^parent.aspx
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="fu.aspx.cs" Inherits="fu" %>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>无标题页</title>
<script type="text/javascript">function getlqlb()
//这里定义那个弹出窗口的JS。
{
var getlqlb = showModalDialog("son.aspx", "newwin", "dialogWidth:330px;dialogHeight:170px"); //接收从子窗口中传过来的值。
if (getlqlb != null)
{
document.getElementById("<%=TextBox1..ClientID%>") .value=getlqlb; //将已接收的值写入textbox。
}
else
{
alert("No data Returned!");//如果传过来的值为空则弹出一个警告框。
}
}
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:TextBox ID="TextBox1" runat="server" onclick="getlqlb()"></asp:TextBox></div>
</form>
</body>
</html>son.aspx
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="zi.aspx.cs" Inherits="zi" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>无标题页</title>
<base target="_self" />
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:TextBox ID="TextBox2" runat="server"></asp:TextBox> //显示一个文本框
<asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Button" /> //显示一个按钮
</div>
</form>
</body>
</html>son.aspx.csprotected void Button1_Click(object sender, EventArgs e)
{
if (!this.IsPostBack)
{this.RegisterStartupScript("JS", "<script language='javascript' type='text/javascript' defer='defer'>window.returnValue=document.getElementById(+'"+TextBox2+"').value;window.close();</script>");
}
}
解决方案 »
- asp.net mvc action返回当前调用view或者action怎么办
- 各位大师。这个接下来怎么写呢。。RadioButtonList1
- 关于SiteMapPath的求助帖
- [flyin2006]Excel操作错误:不能更新。数据库或对象为只读。
- 请教个限制IP的问题?
- 100分求一个连接ORACLE数据库的小问题,在线等
- 我一不小心把crystal Report中的“字段资源管理器”窗口关了。
- 如何通过程序来修改asp:ButtonColumn 中的text属性
- 救命呀,弹出窗口中session失效的问题
- 大家好,问一个很菜的问题,希望大家能给我帮助。。
- asp.net?????????????????????????????
- 树的删除?
我经过测试发现 如果单纯建这两个简单的页面(页面内没有其他内容),则没有任何问题
我把他们放到母版页中就不会显示了 而是提示showModalDialog()为空或不是对象!
这又是为什么呢???
<body onload="window.returnValue=false;">
原因是 在母版页的contentplaceholder控件中的控件 在编译后重新设定了ID。而客户端的JS并不知道。所以应该在页面发送给客户端前就将所需要的控件找出来(具体可参考天轰穿的博客) 动态地加上JS事件就好了。