2008-10-13 2 views
1

내 페이지에 ASP.net 페이지가 있습니다. 파일 내 코드로 사용하고 있습니다. 처음 페이지에 페이지가 미리 시작되면 init, load 메서드가 호출됩니다. 포스트 백에 preinit, init, load 메소드가 호출됩니다.ASP.net 페이지 수명주기

내 질문 LoadViewstate 및 제어 상태 이벤트 (오버라이드 (override) 방법)도이 방법은 .NET Framework 인프라에 의해 주로 사용되는

protected override void OnPreInit(EventArgs e) 
{ 
    base.OnPreInit(e); 
} 
protected override void LoadViewState(object savedState) 
{ 

    base.LoadViewState(savedState); 

} 

protected override void LoadControlState(object savedState) 
{ 
    base.LoadControlState(savedState); 
} 
protected void Page_Init(object sender, EventArgs e) 
{ 

} 
protected void Page_Load(object sender, EventArgs e) 
{ 
    // lblName.Text = ViewState["Test"].ToString(); 
} 

답변

3

포스트 백 후 발사와 수 없습니다 가 아니므로한다 코드 에서 직접 사용됩니다. 그러나 컨트롤 개발자 은이 메서드를 재정 의하여 사용자 지정 서버 컨트롤에서 뷰 상태를 복원하는 방법을 지정할 수 있습니다. 자세한 내용은 에서 ASP.NET 상태 관리 개요를 참조하십시오.

LoadViewState 메서드는 이전 SaveViewState 요청 중에 에 저장된 뷰 상태 정보를 복원합니다. WebControl 클래스 은 기본 LoadViewState 메서드를 재정 의하여 ViewState, Style, 및 Attributes 속성을 처리합니다.

또한 때때로 당신이 제대로 작동하려면 위해서는 저장 제어 상태 데이터에 컨트롤을 필요

제어 상태를 확인합니다. 당신이 예상대로 작동하는 것을 제어하기 위해 에, 다른 정보를 표시하는 것이 다른 탭이 사용자 정의 컨트롤을 작성한 경우 예를 들어, 제어는 는 왕복 사이에 선택되어있는 탭을 알 필요가있다. ViewState 속성은 에 사용할 수 있지만보기 상태는일 수 있으며 페이지 수준에서 개발자가 해제하여 효과적으로 컨트롤을 깨뜨릴 수 있습니다.이 문제를 해결하기 위해 ASP.NET 페이지 프레임 워크는 ASP.NET의 컨트롤 상태라는 기능을 제공합니다.

ControlState 속성을 사용하면 는 컨트롤에 고유 한 것을 속성 정보를 유지하고 이 ViewState에 재산처럼 끌 수 없습니다 수 있습니다.

Asp.Net StateManagement link

당신의 컨트롤이 고객 서버 컨트롤

iStateManager

에서 그리고 viewstate가의 전체 개요를 살펴 인 경우 - 내 북마크 시도를 검색했다

Truly understanding viewstate

3

ASP.NET은이 호출을 최적화하고 뷰 상태에 기록 된 사용자 지정 데이터가있는 경우에만 LoadViewState를 호출합니다.

첫 번째 호출에서 뷰 상태로 항목을 설정하면 (예 : ViewState [ "foo"] = 42;) 다음 (및 후속) 콜백에서 LoadViewState가 호출됩니다.

관련 문제