2009-07-06 4 views
4

자, 내 페이지에 사용자 정의 컨트롤이 있습니다.내 사용자 정의 컨트롤이 visible 속성을 false로 재설정하는 이유는 무엇입니까?

페이지에서 visible 속성은 false로 설정됩니다.

OnPreRender 이벤트에서 visible 속성을 true로 설정했습니다.

코드 줄을 실행하지만 실제로 아무 것도 변경하지 않습니다. (보이기 때문에 false로 유지됨)

이 똑같은 방법은 다른 모든 컨트롤에서 작동하며이 컨트롤에 특별한 것은 없습니다.

어떤 아이디어 ??

+1

코드를 게시하십시오. 우리가 코드를 볼 필요가 있다는 것을 당신이 말하는 것은 불가능합니다. – tvanfosson

답변

10

이 컨트롤이 포함 된 컨트롤에서 보이는 속성을 확인하십시오.

Visible = True로 설정하면 Visible == True가 아니라 부모 컨트롤이 False이면 여전히 False를 반환합니다.

그러나 다른 사람이 문제의 원인을 추적하는 데 도움이되도록 코드 예제를 게시해야 할 수도 있습니다.

+0

내가 얼마나 바보인지. 나는 그것을 알았다. 그러나 점검하는 것을 잊었다. 대단히 감사합니다. -이 항목이 정렬되었습니다. (부모 컨트롤은 제안대로 비트를 숨기는 것이 었습니다) – tim

1

나는 똑같은 문제에 직면했고 ... 예. 문제는 부모가 눈에 보이지 않는다는 것입니다. 그래서이 문제를 해결하기 위해 코드를 조금만 풀었다.

public static void ForceVisibleState(Control control, bool visible) 
    { 
    if (!visible) 
    { 
     control.Visible = false; 
    } 
    else 
    { 
     // Must set all parents to 'visible = true' 
     List<Control> parents = new List<Control>(); 
     while (control != null && 
       !control.Visible) 
     { 
      parents.Insert(0, control); 
      control = control.Parent; 
     } 
     foreach(Control parent in parents) 
     { 
      parent.Visible = true; 
     } 
    } 
    } 
관련 문제