문제

ASP.Net이 뷰 상태를 유지하는 것을 이해하기 위해 제어 인프라 주위에 머리를 감싸려고합니다.

이러한 일반적인 HTML 컨트롤이 있습니다.<input type="radio" checked="checked"/> -> 나는 이것들에 ViewState가 없다는 것을 이해합니다

그런 다음 runat = "Server"가있는 HTML 컨트롤이 있습니다.<input type="radio" checked="checked" runat="server"/> -> viewstate가 Postbacks 사이에서 유지됩니까?

그런 다음 ASP.NET 컨트롤이 있습니다<asp:TextBox id="txtMyText" runat="server"/> -> 나는 이것들이 ViewState가 있다는 것을 이해합니다

HTMLTextBox를 상속하는 몇 가지 사용자 정의 컨트롤이 있습니다<myPrefix:myTextBox id="txtMyText" runat="server"/> -> 이것은 위의 유형 2와 동일합니까?

통제를 가정하는 것이 안전합니까? runat="server" 태그가 ViewState가 유지 관리 할 것인가?

도움이 되었습니까?

해결책

runat = 서버 태그가 추가 된 HTML 서버 컨트롤과 같은 3 가지 유형의 컨트롤, 표준 HTML 요소 및 전체 웹 컨트롤이 있습니다. 웹 컨트롤만이 뷰 스테이트를 유지 관리합니다.

다른 팁

ViewState에 문제가 있었을 때 Binary Fortress의 ViewState 도우미 소프트웨어를 사용하기 시작했습니다. http://www.binaryfortress.com/aspnet-viewstate-helper/

ViewState 관련 성능 문제를 도울뿐만 아니라 한 번의 클릭으로 ViewState를 해독하고 실제로 무엇이 있는지 확인할 수있는 방법에 대한 진정한 통찰력을 제공합니다. 따라서 ViewState를 사용하고 어떤 컨트롤이 무엇인지 이해하게됩니다. T, 그리고 정확히 그들이 거기에 저장하고있는 것.

또한 다른 사람이 언급 한 것은 ControlState입니다. 이것은 asp.net 2 및 the와 함께왔다 이론 제어 기능이 필수적 인 중요한 사항은 제어 상태와 viewstate의 데이터 등에 들어가므로 ViewState를 끄고 모든 Postback에서 제어에 데이터를 바인딩하고 기본적으로 작동합니다. ControlState 사용. 실제로 구현이 고르지 않기 때문에 "이론"이라고 말합니다. 예를 들어 반사기를 사용하여 DropdownList 코드를 살펴보면 제대로 구현되지 않았습니다. 이것은 나중에 프레임 워크의 릴리스로 변경되었을 수 있습니다. 확실하지 않습니다. ControlState에 대한 많은 정보가 검색되면 언급 할 것이라고 생각했습니다.

AFAIK NO, HTML 컨트롤은 ViewState의 어떤 것도 유지하도록 설계되지 않았으며, 관심이 있으시면 웹 구성을 가져옵니다.

페이지보기에 넣고 runat = "Server"를 추가하면 ViewState가 유지됩니다.

동적으로 추가 된 컨트롤의 경우 컨트롤 트리에 컨트롤을 추가하는시기와 방법에 따라 다릅니다. 허용 된 답변을 확인하십시오 이 질문, 또한 체크 아웃 여기 내 질문.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top