2012-06-22 2 views
0

C#에서 매우 큰 ASP.NET 응용 프로그램이 있습니다.버튼 가시성이 기본값으로 유지되는 이상한 문제

문제는 간단하지만 어렵거나 이상합니다. 코드에서 버튼의 가시성을 변경하려고하는 위치에 관계없이 true 또는 false로 설정하더라도 기본값을 유지합니다.

나는 무엇이 이것을 일으킬 수 있는지 잘 모르겠다. 그래서 나는 여기에 의견을 묻는 것을 시도 할 것 같았다.

+0

여기에 코드와 마크 업을 게시해야합니다. –

+0

UpdatePanels를 사용하고 있거나 모든 포스트 백에서 해당 버튼의 가시성을 기본값으로 설정하고있을 수 있습니다. page_load에서 각 행을 추적해야합니다. – yogi

+0

정말 코드를 게시 할 수 없거나 그렇지 않을 것입니다. 매우 큰 프로그램이고 단추가 여러 곳에서 사용되므로이 기본값을 변경하면 버튼을 표시 할 수 있습니다. – Bulvak

답변

0

Visible 속성은 부모 컨트롤에서 상태를 상속받습니다. 예를 들어

:

<asp:Panel ID="Panel1" Visible="false" runat="server"> 
    <asp:Button ID="Button1" runat="server" Text="click me" /> 
</asp:Panel> 

Button는 볼 수 없을 것, 한 컨테이너 컨트롤 Panel1이 보이지 않는 때문이다. Control.Visible

구현 :

public virtual bool Visible 
{ 
    get 
    { 
     return !this.flags[16] 
     && (this._parent == null || this.DesignMode || this._parent.Visible); 
    } 
    set 
    { 
     // ... 
    } 
} 

그래서 때 parent != null && !visible, 자식 컨트롤이 보이지 않습니다.

+0

이 단추를 더 이상 사용하지 않으면 일반적인 방법을 찾고 있습니다. 값을 true로 설정하십시오. 컨테이너가 항상 표시됩니다. – Bulvak

+0

질문에이 정보를 포함시키지 않는 이유는 무엇입니까? 또한 aspx의 축소 버전과 같은 일부 코드를 표시해야합니다. –

+0

나는 문제를 해결했다 ... 아주 이상했다 ... 갑자기 내 프로그램을 다시 돌릴 때, 버튼은 적절한 코드 동작을 따른다 : Visual Studio bug? 편집 : 사실 나는 포기, 때로는 코드를 변경하지 않고 코드를 실행하면 버튼이 적절한 행동을 따르고 다른 시간에는 ... 같은 코드를 실행하지만 모두> _>를 다시 컴파일합니다. @ 김 Schmelter 나는 이것이 일부 IDE 버그라고 생각한다. – Bulvak