如何使用像@PreviousPageType这样的@reference来引用多个以前的页面?

时间:2013-03-05 22:43:02

标签: asp.net cross-page-postback

在ASP.net中,我有两个显示摘要信息的类似页面。我想从这些页面中提取属性值,以在详细信息页面中显示有关所选记录的详细信息。 我使用@PreviousPageType引用只为一个摘要页面成功完成了它。

    <%@ PreviousPageType VirtualPath="~/SOURCE1.aspx" %>

但很快就出现了我需要另一页作为馈线。不幸的是,根据我的阅读,似乎你不能有多个PreviousPageTypes

根据:http://msdn.microsoft.com/en-us/library/ms178139%28v=vs.100%29.aspx?cs-save-lang=1&cs-lang=csharp#code-snippet-6 我应该可以做一些类似的参考:

    <%@ Reference VirtualPath="~/SOURCE1.aspx" %>

我不知道如何投射页面,因为我不确定'SourcePage_Aspx在下面的代码中是什么'顺便提到来自上面的链接。

    SourcePage_aspx sourcePage;
    sourcePage = (SourcePage_aspx) PreviousPage;
    Label1.Text = sourcePage.CurrentCity;

我知道要使用你必须投射的引用,但是,这是怎么做到的?有人可以指点我正确的方向吗?

1 个答案:

答案 0 :(得分:0)

此页面包含答案! :http://www.codingwith.net/2008/01/using-previouspage-property-with.html

(如果您打算访问解决方案的另一个文件夹中的页面,请不要忘记您的using语句,但是intellesense可能会为您生成它)

我的代码:

                if (Page.PreviousPage != null && Page.PreviousPage.IsCrossPagePostBack == true)
                {
                    //make sure to define reference directive on .aspx : <%@ Reference Page="~/SourcePage1.aspx" %>
                    if (PreviousPage is SourcePage1)
                    {
                        ViewState["SessionVariable"] = ((SourcePage1)PreviousPage).PropertyFromPreviousPage1;
                    }
                    //make sure to define reference directive on .aspx : <%@ Reference Page="~/SourcePage2.aspx" %>
                    if (PreviousPage is SourcePage2)
                    {
                        ViewState["SessionVariable"] = ((SourcePage2)PreviousPage).PropertyFromPreviousPage2;
                    }

                }