2013-03-30 2 views
1

CompositeDataBoundControlINamingContainer을 상속받은 서버 컨트롤을 개발했습니다. 그것에는 2 개의 TextBoxes와 1 개의 작은 이미지가 있습니다.어떻게 서버 컨트롤의 viewstate 크기를 줄일 수 있습니까?

그러나 렌더링시 GridView에서 ViewState 크기는 최대 500 바이트입니다. 또한 약 20 개의 속성이 있지만 여기서 ViewState를 사용하지 않습니다.

나는 get;set;만을 사용하며 다시 게시 할 때 다시 바인딩합니다.

이제이 ViewState 크기를 줄이는 방법과이 ViewState를 검사 할 수있는 방법이 궁금합니다. ViewState의 값을 검사 할 수 있다면 문제를 해결하는 것이 도움이 될 것입니다.

+0

그건 그렇고, 그것은 단지 CompositeControl이 아닙니다. CompositeDataBoundControl입니다. –

답변

1

base-64 decoder에 ViewState를 붙여 넣습니다. 나는 공간을 차지하는 것이 무엇인지를보기 위해 항상 깨닫는다.

ViewState 필드에는 ControlState도 포함됩니다.

텍스트 상자 2 개와 작은 이미지 1 개가 있습니다.

일부 컨트롤은 ViewState 없이도 HTTP 요청에 지속적으로 존재할 수 있기 때문에 제대로 작동 할 수 있습니다. TextBox은 ViewState의 값이 항상 요청의 일부로 서버에 다시 게시되기 때문에 ViewState를 명시 적으로 사용하지 않도록 설정할 수있는 좋은 방법입니다.

URL을 계산할 때 처리 시간 (예 : 데이터베이스 호출 대 정적 할당)이 필요하지 않으면 이미지도 ViewState를 사용하지 않도록 설정하는 것이 좋습니다. ...의 GridView에

을 렌더링 할 때

는 그러나 GridView 거의 확실히 ViewState에 자신을 추가합니다. 너 그거 회계 야?

+0

Thx, Tim. 매우 도움이되었습니다. –

0

당신은 당신은 또한 페이지에서 viewstate가 비활성화이 링크 Disable View State for a Page를 확인할 수 있습니다

this.EnableViewState = false; 

와 viewstate가 비활성화 할 수 있습니다.

viewstate를 확인하려면 ASP.NET ViewState Helper 또는 Fiddler와 같은 도구를 사용하여 viewstate를 분석 할 수 있습니다.

+1

Thx, hagensoft. 하지만 저는 서버 컨트롤 개발자입니다. viewstate를 사용하지 않도록 모든 개발자에게 말할 수는 없습니다. 그리고 요점은 viewstate 크기를 줄이거 나 끄지 말아야한다는 것입니다. –

+0

다음은 viewstate의 크기를 줄이는 데 도움이되는 몇 가지 전략입니다. http://stackoverflow.com/questions/1944218/strategies-for-reducing-viewstate-size-in-asp-net – hagensoft

관련 문제