同一个框架分割的两个子页面之间如何通信?

时间:2022-05-05 20:15:28
如果左边的子页面有一个按钮,当我按下该按钮之后,右边的子页面想要的到该按钮的text,并且显示在右边页面上,怎么做?

22 个解决方案

#1


这一个你用javascript能比较好地实现

#2


我使用的是ASP.NET和c#,刚开始用,但我不想把javascript牵扯进来,我觉得这个功能应该不算太复杂的

#3


如果不用jscript,那就只好用SESSION了

#4


我会用session一点点,但是只能从一个网页到另一个网页传递消息,而不能再一个框架内部的两个子页面传递消息,能不能给一个例子

#5


其实用javascript是最方便容易的解决方法。

不能因为使用.net,C#就完全抛弃js.

试想一下:
这样一个简单的操作都到服务器打个转,处理一下,
如果网络环境不好,显示直接用js解决方便。

而且,你要处理的内容是在两个页面中,那就更不好在服务器端处理了。
你要在服务器处理,等于是这样:
1。点击1中的按钮。
2。把点击的某些信息记录在session中,返回的叶面中仍然要用
   js来刷新叶面2。
3。叶面2刷新读取session中的内容。

从中我们可以看到,即使你这样,仍然要用js
反而把简单问题复杂化了。

#6


其实用javascript是最方便容易的解决方法。

不能因为使用.net,C#就完全抛弃js.

试想一下:
这样一个简单的操作都到服务器打个转,处理一下,
如果网络环境不好,显示直接用js解决方便。

而且,你要处理的内容是在两个页面中,那就更不好在服务器端处理了。
你要在服务器处理,等于是这样:
1。点击1中的按钮。
2。把点击的某些信息记录在session中,返回的叶面中仍然要用
   js来刷新叶面2。
3。叶面2刷新读取session中的内容。

从中我们可以看到,即使你这样,仍然要用js
反而把简单问题复杂化了。

#7


借宝地一用,我的顶框架中有一个下拉菜单,在下拉的时候,有一部分被下框架给遮住了,
我有什么办法让顶框架置于最顶层啊

#8


框架内两个子页面还是页面啊,跟平时用SESSION没什么区别

#9


javascript

#10


我不会使用javascript,最好能够给出一个javascript的例子

使用session的时候,如果左边页面的按钮被按下后,右边的页面会覆盖在左边的页面位置,然后显示得到的字符串

左边页面:(webform1.aspx)
private void Button1_Click(object sender,System.EventArgs e)
{
Session["name"]="haha";
Response.Redirect("webform2.aspx");
}

右边的页面:(webform2.aspx)
private void Page_Load(object sender,System.EventArgs e)
{
Label1.Text=Session["name"].ToString();
Session.Remove("name");
}

我实在不明白,为什么会出现这样的情况,使我使用的不对么?

#11


用.net ,也不能说就不用JS了
有很多的前台问题利用JS解决是很容易的

#12


刚才我又试了一下,出现如下异常,在第二个页面上

未将对象引用设置到对象的实例。 
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 

异常详细信息: System.NullReferenceException: 未将对象引用设置到对象的实例。

源错误: 


行 48:  private void Label1_Load(object sender, System.EventArgs e)
行 49:  {
行 50:  Label1.Text=Session["1"].ToString();
行 51:  Session.Remove("1");
行 52:  }
 

源文件: c:\projects\jinying\webform2.aspx.cs    行: 50 

堆栈跟踪:

#13


但是如果是两个独立的页面,这样就不会出现异常,为什么?

#14


在框架上放隐藏域就行了

#15


session会出现超时的问题,用cache就可以解决这个问题了:)

#16


如何在框架上放隐藏域?请告诉我,我刚开始用.net,以前我是vc6.0程序员,不太懂asp

#17


js最好解决

#18


拜托,无论是那种方法,告诉我怎么做好么,给我一个例子,我是新手,vc是高手,asp.net是入门

#19


我也想知道,请高手帮帮忙!

#20


private void Button1_Click(object sender,System.EventArgs e)
{
Session["name"]="haha";
Response.Redirect("webform2.aspx");
}

右边的页面:(webform2.aspx)
private void Page_Load(object sender,System.EventArgs e)
{
Label1.Text=Session["name"].ToString();
Session.Remove("name");

你的代码是没有问题的。因为你是在框架左边的页面Redirect,所有会刷新框架左边的页面,你应该让框架右边的页面重定向。


Label1.Text=Session["1"].ToString();
这句出现问题是因为你的Session["1"]可能为空,所有不能使用.ToString。你可以先判断一下
if (Session["1"] !=null) then
{
Label1.Text=Session["1"].ToString();
}

#21


借宝地一用,我的顶框架中有一个下拉菜单,在下拉的时候,有一部分被下框架给遮住了,
我有什么办法让顶框架置于最顶层啊
????????????????????????????????????????????????
/???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????

#22


如何将右边的页面重定向呢?头大!

#1


这一个你用javascript能比较好地实现

#2


我使用的是ASP.NET和c#,刚开始用,但我不想把javascript牵扯进来,我觉得这个功能应该不算太复杂的

#3


如果不用jscript,那就只好用SESSION了

#4


我会用session一点点,但是只能从一个网页到另一个网页传递消息,而不能再一个框架内部的两个子页面传递消息,能不能给一个例子

#5


其实用javascript是最方便容易的解决方法。

不能因为使用.net,C#就完全抛弃js.

试想一下:
这样一个简单的操作都到服务器打个转,处理一下,
如果网络环境不好,显示直接用js解决方便。

而且,你要处理的内容是在两个页面中,那就更不好在服务器端处理了。
你要在服务器处理,等于是这样:
1。点击1中的按钮。
2。把点击的某些信息记录在session中,返回的叶面中仍然要用
   js来刷新叶面2。
3。叶面2刷新读取session中的内容。

从中我们可以看到,即使你这样,仍然要用js
反而把简单问题复杂化了。

#6


其实用javascript是最方便容易的解决方法。

不能因为使用.net,C#就完全抛弃js.

试想一下:
这样一个简单的操作都到服务器打个转,处理一下,
如果网络环境不好,显示直接用js解决方便。

而且,你要处理的内容是在两个页面中,那就更不好在服务器端处理了。
你要在服务器处理,等于是这样:
1。点击1中的按钮。
2。把点击的某些信息记录在session中,返回的叶面中仍然要用
   js来刷新叶面2。
3。叶面2刷新读取session中的内容。

从中我们可以看到,即使你这样,仍然要用js
反而把简单问题复杂化了。

#7


借宝地一用,我的顶框架中有一个下拉菜单,在下拉的时候,有一部分被下框架给遮住了,
我有什么办法让顶框架置于最顶层啊

#8


框架内两个子页面还是页面啊,跟平时用SESSION没什么区别

#9


javascript

#10


我不会使用javascript,最好能够给出一个javascript的例子

使用session的时候,如果左边页面的按钮被按下后,右边的页面会覆盖在左边的页面位置,然后显示得到的字符串

左边页面:(webform1.aspx)
private void Button1_Click(object sender,System.EventArgs e)
{
Session["name"]="haha";
Response.Redirect("webform2.aspx");
}

右边的页面:(webform2.aspx)
private void Page_Load(object sender,System.EventArgs e)
{
Label1.Text=Session["name"].ToString();
Session.Remove("name");
}

我实在不明白,为什么会出现这样的情况,使我使用的不对么?

#11


用.net ,也不能说就不用JS了
有很多的前台问题利用JS解决是很容易的

#12


刚才我又试了一下,出现如下异常,在第二个页面上

未将对象引用设置到对象的实例。 
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 

异常详细信息: System.NullReferenceException: 未将对象引用设置到对象的实例。

源错误: 


行 48:  private void Label1_Load(object sender, System.EventArgs e)
行 49:  {
行 50:  Label1.Text=Session["1"].ToString();
行 51:  Session.Remove("1");
行 52:  }
 

源文件: c:\projects\jinying\webform2.aspx.cs    行: 50 

堆栈跟踪:

#13


但是如果是两个独立的页面,这样就不会出现异常,为什么?

#14


在框架上放隐藏域就行了

#15


session会出现超时的问题,用cache就可以解决这个问题了:)

#16


如何在框架上放隐藏域?请告诉我,我刚开始用.net,以前我是vc6.0程序员,不太懂asp

#17


js最好解决

#18


拜托,无论是那种方法,告诉我怎么做好么,给我一个例子,我是新手,vc是高手,asp.net是入门

#19


我也想知道,请高手帮帮忙!

#20


private void Button1_Click(object sender,System.EventArgs e)
{
Session["name"]="haha";
Response.Redirect("webform2.aspx");
}

右边的页面:(webform2.aspx)
private void Page_Load(object sender,System.EventArgs e)
{
Label1.Text=Session["name"].ToString();
Session.Remove("name");

你的代码是没有问题的。因为你是在框架左边的页面Redirect,所有会刷新框架左边的页面,你应该让框架右边的页面重定向。


Label1.Text=Session["1"].ToString();
这句出现问题是因为你的Session["1"]可能为空,所有不能使用.ToString。你可以先判断一下
if (Session["1"] !=null) then
{
Label1.Text=Session["1"].ToString();
}

#21


借宝地一用,我的顶框架中有一个下拉菜单,在下拉的时候,有一部分被下框架给遮住了,
我有什么办法让顶框架置于最顶层啊
????????????????????????????????????????????????
/???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????

#22


如何将右边的页面重定向呢?头大!