2013-02-01 3 views
2

ASP.NET이 컨트롤 상태를 해제 할 수 없다는 것을 알고 있습니다.ASP.NET : 컨트롤 상태를 비활성화 할 수없는 이유

아무도 알지 못합니다 ? 나는 많이 봤지만봤을 때 가능하지 않았지만 "WHY"를 찾을 수 없었다.

의견을 보내 주시면 감사하겠습니다.

P. 내 경우에는 서버 측 이벤트에 사용되지 않는 많은 항목을 드롭 다운 목록에 넣어야합니다. 제어 상태를 비활성화하는 대신 내 자신의 사용자 지정 DropDownList를 작성해야합니다. (

+1

이것은 asp.net webforms의 주된 단점입니다. 왜 요즘 인기가있는 asp.net mvc가 있습니까? – Cris

답변

3

제어 상태는보기 상태와 분리되어 중요한 기능을 중단시키지 않고 뷰 상태를 사용할 수 없게됩니다. ASP.NET 버전 2.0에 도입 된 서버 컨트롤이 제대로 작동하는 데 필요한.

제어 상태, 상태를 볼 비슷하지만 뷰 상태의 기능적 독립 입니다. 페이지 개발자가 페이지 뷰 상태를 해제 할 수 있습니다 또는 성능을 위해 개별 컨트롤을 사용합니다. 그러나 제어 상태는 일 수 없습니다. 에드. 컨트롤 상태는 이 비활성화 된 상태에서도 컨트롤이 작동하도록 포스트 백에서 사용할 수 있어야하는 컨트롤의 필수 데이터 (예 : 호출기 컨트롤의 페이지 번호)를 저장하기위한 것입니다.

http://msdn.microsoft.com/en-us/library/1whwt1k7(v=vs.100).aspx

그러나 ... ASP.Net은 참으로 필수 제어 상태에도 불구하고 특정 서버 컨트롤을 깰 것이다 뷰 상태를이 구별을하고, 해제의 빈약 한 일을한다.

경우에 따라 드롭 다운 목록의보기 상태를 비활성화하면 대다수의 상태 데이터가 제거되어야합니다. 컨트롤 상태는 일반적으로 뷰 상태가 비활성화 된 상태에서 드롭 다운에 대해 매우 작습니다. 나는 당신 자신의 것을 쓰기 전에 먼저 그것을 시도하는 것이 좋습니다.

+0

저는 제어 상태에 대해 알아 봤지만 불행히도 DropDownList에 대한 viewstate를 사용하지 않도록 설정하면 ControlState에 많은 양의 데이터가 유지됩니다. 세 번째로 사용자 지정 컨트롤 (