我正在使用ASP.NET 3.5
C# 2008
。
我有一个母版页,其中我有一个具有ItemCommand
事件的网格视图。此母版页有两个子页Page1.aspx
和Page2.aspx
。
现在,Page1.aspx
有两个部门让我们说div1
和div2
。
默认情况下,div1
为visible
,div2
仍为hidden
。
现在,要求是从redirect
我Page1.aspx
到Page2.aspx
,我想要div1
visible
。当我点击MasterPage's gridview
中的任何按钮时,ItemCommand
事件将被触发,并且还会将我重定向到Page1.aspx
,但那时我只需要显示div2
并希望隐藏div1
。
我可以在ItemCommand
事件上传递查询字符串,同时使用Page1.aspx
重定向到Response.Redirect("Page1.aspx?DisplayDivTwo=true")
,但我don't
想要遵循此类方法。还有其他方法吗?我尝试在重定向之前设置属性,但它不起作用。
答案 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"];