我在P1.aspx中嵌入了P2.aspx, 我希望点P1.aspx中的Button1时,能设置P2.aspx中Label2的文本,并且点P2.aspx中的Button2时,能设置P1.aspx中Label1的文本
请问如何做,谢谢!
//------------------------------------P1.aspx----------------------------------------------------
<%@ Page Language="C#" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
</script><html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:Label ID="Label1" runat="server" Text="Label1"></asp:Label>
<asp:Button ID="Button1" runat="server" Text="Set Label2 In P2" />
<div>
<iframe src= "P2.aspx" frameborder="0"/>
</div>
</div>
</form>
</body>
</html>//------------------------------------P1.aspx----------------------------------------------------
//------------------------------------P2.aspx----------------------------------------------------
<%@ Page Language="C#" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
</script><html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:Label ID="Label2" runat="server" Text="Label2"></asp:Label>
<asp:Button ID="Button2" runat="server" Text="Set Label1 In P1" />
</div>
</form>
</body>
</html>
//------------------------------------P2.aspx----------------------------------------------------
请问如何做,谢谢!
//------------------------------------P1.aspx----------------------------------------------------
<%@ Page Language="C#" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
</script><html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:Label ID="Label1" runat="server" Text="Label1"></asp:Label>
<asp:Button ID="Button1" runat="server" Text="Set Label2 In P2" />
<div>
<iframe src= "P2.aspx" frameborder="0"/>
</div>
</div>
</form>
</body>
</html>//------------------------------------P1.aspx----------------------------------------------------
//------------------------------------P2.aspx----------------------------------------------------
<%@ Page Language="C#" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
</script><html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:Label ID="Label2" runat="server" Text="Label2"></asp:Label>
<asp:Button ID="Button2" runat="server" Text="Set Label1 In P1" />
</div>
</form>
</body>
</html>
//------------------------------------P2.aspx----------------------------------------------------
Button1 事件中this.Page.ClientScript.RegisterStartupScript(this.GetType(), "update", "<script">window.frame[0].getElementById("Label2").innerText='XXX'</script>");Button2 事件中this.Page.ClientScript.RegisterStartupScript(this.GetType(), "update", "<script">window.top.getElementById("Label1").innerText='XXX'</script>");你码可能有问题,但思路是这样的
Label1.Text = "你好"这样的,但这一切都是基于b/s的基本原理,通过页面的提交来完成的,如楼主你描述的那样,P1要控制P2的内容,因为这两个东西根本不是一个页面而仅仅是通过iframe联系在一起的,也就是说,如果p1提交了,p1的整个页面也刷新了,随着p1的刷新,iframe中的p2也跟着刷新,而p1并不能直接控制p2,只能通过向p2传值的方式,比如,将iframe加一个runat=server的属性,然后控制iframe的src属性,可以向p2传递url的参数,比如src= "P2.aspx?Label2Text=xxxxxx",这样p2接受到了这个参数,然后去改变自己页面中控件的值,这个可以,但是如果说p2提交要来改变p1里面的值呢,只有一个途径了,javascript,输出javascript,改变html dom的元素的value,但是,这个的缺点就是,仅仅改变了页面显示的值,而没有加入asp.net的状态恢复,所以就算你改变了,p1中也得不到的,你在后台写Label1.Text,读不到被改变的值
做个假设:你的页面控件和可见的内容全部在里面,点击事件---》
onclick(fcunction()
{
window.location.href=“sonHTML.html”;
})
---->子页面跟踪事件来源获取(其实不需要获取什么,直接操作)----》
子页面js函数
( function test()
{
Var sonDiv=document.getElementById("容器的id(如果是服务器容器记得+CilentID)");
sonDiv.style....
})
window.parent.getElementById("Label1").innerText="";
或使用用户控件,通过属性实现传递
基本思路:
在p1.aspx或p2.aspx中定义一个含参的委托
分别在两个页面中定义事件
点击button触发事件调用方法完成label值的设置