2009-06-17 3 views
2

aspx 페이지의 패널에 TextBox가 있습니다.페이지에서 컨트롤을 사용할 수 있는지 어떻게 결정합니까?

textBox가 활성화되어 있지 않으면 RequiredFieldValidator를 비활성화해야합니다. 패널이 비활성화되고 TextBox.Enabled이 True이면

, 다음 텍스트 상자는 페이지에서 사용할 수 없습니다 (미세이다.) 텍스트 상자가 페이지의 경우에 비활성화 된 경우

그래서 어떻게 찾을 수 있습니다 Enabled 속성이 안정적이지 않습니까?

많은 중첩 수준의 컨테이너가있을 수 있으며 컨테이너가 항상 패널이 아니기 때문에 일반 솔루션이 필요하다는 점에 유의하십시오.

답변

4

컨트롤 계층 구조에서 재귀 검색을 수행 할 수 있으며 컨트롤이 사용 가능으로 설정되어 있고 해당 조상이 모두 사용으로 설정된 경우 컨트롤이 사용 가능으로 설정됩니다.

bool IsControlEnabled (WebControl control) 
{ 
    if (!(control.Parent is WebControl)) 
     return control.Enabled; 

    return control.Enabled && 
     IsControlEnabled(control.Parent as WebControl); 
} 
1

컨테이너 컨트롤을 어떻게 비활성화 하시겠습니까? 콘테이너를 비활성화 할 때 TextboxRequiredFieldValidator 컨트롤을 비활성화 할 수없는 이유가 있습니까?

관련 문제