2009-10-10 2 views
1

나는 aspx 페이지 A와 B에서 호스팅되는 공개 속성이 노출 된 UC_Test라는 asp.net 사용자 정의 컨트롤을 가지고 있습니다.속성 값에 따라 사용자 컨트롤의 개별 인스턴스를 캐시하는 방법

페이지에서 param1은 10으로 설정되고 B 페이지의 param1은 20으로 설정됩니다. 매개 변수 값에 따라 사용자 정의 컨트롤의 서식이 제어됩니다.

페이지 A와 페이지 B가 사용자 컨트롤의 인스턴스를 구분하기를 원합니다.

okw가 지적한 바와 같이 성능상의 이유로 캐싱을 사용하고 값을 지속하지 않으려 고합니다. 어떻게해야합니까?

이 목적으로 Shared = false를 사용할 수 있습니까?

감사합니다.

+0

'캐시'의 목적은 성능 관련 또는 값을 저장하기위한 목적인가? –

답변

0

가장 직접적인 방법은 적절한 값을 보유하는 HiddenField를 사용하는 것입니다. 양식 제출 또는 다시 게시 호출 중에 페이지에서 다시 읽습니다. 이 시나리오에서

public int MyProperty 
{ 
    get 
    { 
     return (int)ViewState[this.UniqueID + "_MyProperty"]; 
    } 

    set 
    { 
     ViewState[this.UniqueID + "_MyProperty"] = value; 
    } 
} 

의 ViewState가 HttpContext.Current.Cache 또는 HttpContext.Current.Session와 상호 교환되는 :

0

당신이 뭔가를 할 수 있습니다. 널 (null) 또는 무엇이든 점검해야합니다.

희망이 있습니다.

관련 문제