마침 저도 User Control 에서 Page의 상태 값에 접근할 필요가 있어서 구현을 해보니 ViewState 속성에 직접 접근하는 것은 않되더군요.
그런데 MSDN 의 예제 코드에서 속성의 get, set 메서드 구현시 ViewState 값을 사용하는 것을 본 적이 있어서
Page 의 속성 정의를 통해 접근을 시도해보니 되더라구요.
구체적으로 말씀드리면
Page 의 속성을 정의 해놓고 (물론 속성 값의 한정자는 public 으로...
속성의 get, set 메서드에 ViewState 값을 이용합니다.
예를 들어
Page 에 StateValue 라는 속성을 정의 하고 StateValue 의 get, set 메서드를 다음과 같이 구현합니다.
public string StateValue
{
get
{
if (ViewState["statevalue"] == null)
return "";\
else
return ViewState["statevalue"].ToString();
}
set
{
ViewState["statevalue"] = value;
}
}
{
get
{
if (ViewState["statevalue"] == null)
return "";\
else
return ViewState["statevalue"].ToString();
}
set
{
ViewState["statevalue"] = value;
}
}
그리고 WebForm1 이라는 Page 에 포함된 User Control 에서 WebForm1 의 상태 값을
1. 저장할 때는 ( (WebForm1)Page ).StateValue = "Value1";
2. 검색할 때(읽어 올 때)는 string strPageValue = ( (WebForm1)Page ).StateValue;
와 같은 형식으로 접근하면 될 것 같습니다.
물론 Page 단의 메서드를 통해서 접근하는 것도 가능할 꺼라 생각되고요...
수고하세요.^^
출처: 데브피아
http://www.devpia.com/Forum/BoardView.aspx?no=61989&ref=61949&forumname=ASPNET_QA
댓글 없음:
댓글 쓰기