日期:2014-05-18  浏览次数:20357 次

继续请教,在一个页面能不能控制其它页面的控件?
是这样的,在由一个页面跳转到另一个页面后(不是在新窗口中打开),执行了一些操作,当单击这个页面上返回按钮时,返回原来的页面,但我想顺便执行一下单击这个页面上的某个按钮的事件,可不可以?
如下:
由a.aspx(有button1按钮和button2按钮)点击button2按钮后转到另一个页面b.aspx后,单击b.aspx上的返回按钮后,返回到a.aspx,同时执行button1的单击事件,这样做要怎么来实现?
顺便说一下,我的b.aspx界面是通过如下进入的:
在a.aspx中button2的单击事件为:
this.Response.Redirect( "b.aspx?newsid= "+id);
其中id是a.aspx中的一个值
也就是说用了字符串进行传值给b.aspx。
有位网友说在b.aspx中设置一个session值,然后在a.aspx中查看是否有这个值,我做了做也行,但是希望能给个其他的方法,谢谢大家!
还有,用this.Response.Redirect( "b.aspx?newsid= "+id)来跳转到b.aspx中能不能在新页面中打开?

------解决方案--------------------
1.可以用JS来控制
2.this.Response.Redirect( "b.aspx?newsid= "+id) 改成
Response.Write( " <script> location.href= 'b.aspx?newsid= ' "+id+ " ' "; </script> ");
------解决方案--------------------
我的一个想法:

button1 里面的代码 写成一个方法 XXXX

点button1的时候 调用一下XXXX

这样你就可以 从B返回A的时候 传一个变量 传这个变量的方法很多了随意选一种 GET SESSION还是COOKIES 什么的

在A的page_Load 里判断一下
IF确定是从B返回的
调用一下XXXX
------解决方案--------------------
如果你用打开新窗口的方式就避免了所有问题..
1.首先给你个脚本函数:
//打开新的窗口
//可以传递参数到新的窗口
//也可以在新窗口关闭后获得新窗口的值
function ShowModalDialog( url )
{
var var1 = "var1 ";
var var2 = "var2 ";
var inArgs = new Array( var1, var2);

var dialogSettings
= "Center:yes;Resizable:yes;DialogHeight:500px;DialogWidth:600px;Status:no ";
var inArgs = window.showModalDialog( url, inArgs, dialogSettings );

return inArgs;
}
2.在page_load的事件中给你的a.aspx(有button1按钮和button2按钮)中的button2注册脚本事件:
string js = "return ShowModalDialog( ' " + 你要跳转的页面+ " '); ";
this.button2.Attributes.Add( "onclick " ,js );
这样你点击button2就会弹出新的窗口.窗口大小可以自己在脚本函数中设置
------解决方案--------------------
我的方法可能相对复杂了,可以在a.aspx加如下代码根据Request.UrlReferrer来进行判断

//a.aspx
public partial class A : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (Request.UrlReferrer != null)
if(Request.UrlReferrer.AbsolutePath.ToString() == "/WebSite/b.aspx ")
Button1_Click(null, null);
}
protected void Button1_Click(object sender, EventArgs e)
{
Response.Write( "Button1 ");
}
protected void Button2_Click(object sender, EventArgs e)
{
string id = "XXX ";
this.Response.Redirect( "b.aspx?newsid= " + id);
}
}

//b.aspx
public partial class B : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{

}
protected void Button1_Click(object sender, EventArgs e)
{
Response.Redirect( "a.aspx ");
}
}