2011-04-07 9 views
4

마스터 웹 페이지에 button (보기 상태 사용)이 있고 하위 웹 페이지 중 하나에서 visible=false으로 설정합니다. 두 번째 자식 페이지를 열 경우 버튼 상태 (visible=false)이 지속되지 않습니다.ASP.NET에서 페이지간에 viewstate를 유지할 수 있습니까?

을이 viewstate가 한 페이지에서만 유효하며 다른 웹 페이지로 전송되지 않는 것 같다. 를 만들기 위해 트릭의 어떤 종류가 있습니까 모든 웹 페이지에 대한 글로벌 viewstate가? 아니, viewstate가 특정 페이지

답변

13

입니다. 당신은 페이지 사이에 상태를 전달하는 세션 변수 또는 쿼리 문자열 매개 변수 같은 것을 사용해야합니다.

3

아니, 당신은 볼 수 없습니다 글로벌, 그들은 특정 페이지입니다. 나는 당신이 정말로 wa 인 경우 쿠키를 사용하도록 제안 할 것입니다. 그렇지 않으면 세션을 사용할 수 있습니다.

0

"전역"수준으로 저장해야하는 경우 응용 프로그램 상태를 사용해야합니다. 캐시 오브젝트를 사용할 수도 있습니다. 한 페이지에서 다른 페이지로 값을 전달하려는 경우 Server.Transfer와 함께 Context 개체를 사용하여이 작업을 수행 할 수 있습니다.

1) 대상 페이지의 Page_Load 이벤트에서) 3) Server.Transfer를 (DestinationPage.aspx를 수행)

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를 전달하는 값을 반환하는 소스 페이지에 공용 속성이 필요합니다

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

희망이

을하는 데 도움이
관련 문제