在Response.Redirect(“Page.aspx”)上设置Page的属性

时间:2013-07-11 08:55:04

标签: asp.net c#-4.0

我正在使用ASP.NET 3.5 C# 2008

我有一个母版页,其中我有一个具有ItemCommand事件的网格视图。此母版页有两个子页Page1.aspxPage2.aspx

现在,Page1.aspx有两个部门让我们说div1div2

默认情况下,div1visiblediv2仍为hidden

现在,要求是从redirectPage1.aspxPage2.aspx,我想要div1 visible。当我点击MasterPage's gridview中的任何按钮时,ItemCommand事件将被触发,并且还会将我重定向到Page1.aspx,但那时我只需要显示div2并希望隐藏div1

我可以在ItemCommand事件上传递查询字符串,同时使用Page1.aspx重定向到Response.Redirect("Page1.aspx?DisplayDivTwo=true"),但我don't想要遵循此类方法。还有其他方法吗?我尝试在重定向之前设置属性,但它不起作用。

3 个答案:

答案 0 :(得分:4)

除了Session和Querystring,您还可以使用Server.Transfer功能。然后,您可以将数据存储在页面的Request.Items属性中。他们将在您转移到的页面上。

或者您可以在aspx页面中use the Server.Transfer feature in combination with the PreviousPage directive

MSDN有一篇关于所有可供选择的选项的文章很长。参见:

当然,您可以使用Single Page Application javascript framework在客户端构建页面概念,但实际上只能从服务器端服务一页。然后,您可以处理通过json服务来回传输的所有数据。

答案 1 :(得分:3)

您可以使用以下方法

1.使用查询字符串(已经由您实现)

2.使用会话变量

您正在使用asp.net更好地使用多视图而不是Divs

答案 2 :(得分:1)

所以你想在不使用查询字符串的情况下将数据传递到另一个页面?

您可以使用会话状态

Session["DisplayDivTwo"]=="true"

并在你的page1页面加载

if(Session["DisplayDivTwo"]!=null)
string display= (string)Session["DisplayDivTwo"];