2011-04-07 78 views
4

我有一個button(查看狀態啓用)主網頁,並將其設置爲visible=false在其中一個子網頁。如果第二個孩子頁面被打開,按鈕狀態(visible=false)沒有堅持。是否有可能在ASP.NET中的頁面之間保持視圖狀態?

看來視圖狀態有效期只有一個頁面,而不是轉移到其它網頁。是否有某種詭計,使視圖狀態全球所有的網頁?

回答

13

沒有,視圖狀態是特定頁面。你需要使用像一個會話變量或查詢字符串參數來傳遞頁面之間的狀態。

3

不,你不能讓圖全局狀態,它們是頁面特定的,如果你真的在使用,我會建議使用cookies nt使其成爲客戶端,否則您可以使用會話。

0

如果您需要在「全局」級別存儲,則應該使用應用程序狀態。您也可以使用緩存對象。 您可能希望將值從一個頁面傳遞到另一個頁面,您可以通過將Context對象與Server.Transfer結合使用來實現此目的。

1)你必須返回值的源頁面上的公用屬性來傳遞

namespace SomeNameSpace 
{ 
    public partial class SourcePage: System.Web.UI.Page 
    { 
     public string ValueToPass 
     { 
      get 
      { 
       if (Context.Items["ValueToPass"] == null) 
        Context.Items["ValueToPass"] = string.Empty; 
       return (string)Context.Items["ValueToPass"]; 
      } 
      set 
      { 
       Context.Items["ValueToPass"] = value; 
      } 
     } 
     ........ 
    } 
} 

2)做一個Server.Transfer的(DestinationPage.aspx) 3)在目標頁面的Page_Load事件

namespace SomeNameSpace 
{ 
    public partial class SourcePage: System.Web.UI.Page 
    { 
     protected void Page_Load(object sender, EventArgs e) 
     { 
      var value = this.Context.Items["ValueToPass"]; 
     } 
    } 
} 

希望這有助於

相關問題