2013-07-11 40 views
1

我正在使用ASP.NET 3.5C# 2008设置Response.Redirect页面的属性

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

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

默认情况下div1visiblediv2仍然hidden。现在

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

我可以通过查询字符串ItemCommand事件,同时重定向到Page1.aspx使用Response.Redirect("Page1.aspx?DisplayDivTwo=true"),但我don't希望遵循这种方法。其他解决方案?我试图在重定向之前设置属性,但它不起作用。

回答

3

您可以用下面的办法

1.使用查询字符串(这已经是由你来实现)

2.使用会话变量

您正在使用asp.net更好地利用多 - 而不是Div的

+0

+1为更好的想法使用多视图而不是Divs。谢谢:) – Dev

1

所以你想要传递数据到另一个页面而不使用查询字符串?

您可以使用会话状态

Session["DisplayDivTwo"]=="true" 

,并在第1页的页面加载

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

除了会话和查询字符串,你也可以使用Server.Transfer功能。然后,您可以将数据存储在页面的Request.Items属性中。他们将在您转移到的页面上。

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

MSDN有一个很长的文章,所有的选项avialable给你。请参阅:

当然,你可以用一个Single Page Application javascript framework建立在客户端页面的概念,但服务器却只有服务器一页。然后你可以通过json服务来处理所有的数据。

+0

感谢您的回答,并提供详细信息+1。但是如果我使用Server.Transfer,则URL将保持与前一页相同。因此,它可能会让用户感到困惑,因为他看到的名称和标签与URL中显示的名称和标签不同。仅供参考,在我的Web应用程序中,用户数量有限,并且是技术人员。所以我需要注意URL也显示在哪个页面上。 – Dev

+0

为什么技术人员会关注页面网址:)。他们应该明白,网址并不重要。除此之外,如果您需要更新网址,则需要使用Cookie,会话或网址参数。或者您需要更新后端/数据库中反映用户选择的内容。对这些技术和精通技术的用户要非常小心,他们通常使用多个标签,当你不这样做时可能会导致各种问题。 – jessehouwing

相关问题