2011-01-21 4 views
1
<asp:TextBox ID="TextBox1" runat="server" EnableViewState="false" /> 
<asp:Button ID="Button1" runat="server" Text="Button" /> 

나는 EnableViewState 속성을 false로 설정했지만 버튼을 클릭하면 텍스트 상자의 값이 포스트 백 후에 유지됩니다. 왜 가치가 지속됩니까?특정 컨트롤에 대한 viewstate를 해제하려면 어떻게합니까?

+0

http://stackoverflow.com/questions/5748354/asp-net-page-controls-and-viewstate/15129881#15129881 – Lijo

답변

4

Understanding ASP.NET View State을 살펴보십시오. 페이지 라이프 사이클에는 폼 데이터의 컨트롤 값을 채울로드 후 데이터 스테이지가 있습니다.

View State는 매우 혼란 스럽습니다. 특히, 컨트롤에 포스트 백에서 양식 데이터가 채워지는 경우 왜 필요합니까? 위의 동일한 링크에있는 The Role of View State은 유용한 이유를 설명하는 적절한 작업을 수행합니다.

요약 : 사용자 입력에는 뷰 상태가 필요하지 않습니다. 뷰 상태는 발생하는 페이지 상태에 대한 프로그래밍 방식의 변경 내용을 저장하는 데 사용됩니다. 간단한 예제는 제출하지 않은 버튼을 클릭하고 핸들러가 라벨의 텍스트를 변경하는 경우입니다. 이 변경 사항은 뷰 상태에 저장되어 추가 포스트 백에서 지속됩니다.

+0

감사 빌. 언급 한 기사는 확실히 흥미 롭습니다. 나는 IPostbackdatainterface에 대해 알지 못했고 예제는 공정하게 설명되어있다. –

-1

Explanation

가장 간단한 방법은 때마다 String.Empty로 Text 속성을 설정하는 것입니다.

+1

내 친구는 매우 나쁜 습관입니다. –

+0

왜 그렇게 생각하니? – zavaz

+0

viewstate를 사용하는 방법에 대해 질문했습니다! –

0

입력을 허용하는 컨트롤은 서버에 게시 된 데이터를 사용하여 상태를 복원 할 수 있습니다. ViewState에 저장할 필요는 없습니다. 어떤면에서는 이전 값이 아니며 사용자가 제출 한 NEW 값입니다 (변경하지 않았을 수도 있음에도 불구하고).

관련 문제