2012-06-22 37 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

該按鈕是可見的,如果我更改其默認值爲真。它所在的容器始終可見。 – Bulvak

+0

爲什麼你不在問題中包含這些信息?你還應該顯示一些代碼,例如你的aspx的簡化版本。 –

+0

我已經解決了這個問題......這非常奇怪......當我突然再次運行我的程序時,該按鈕遵循正確的代碼行爲:S Visual Studio bug?編輯:其實我放棄了,有時當我運行代碼而沒有改變按鈕按照正確的行爲和其他時間,他們不...這是所有的代碼運行,但重新編譯> _>。 @Tim Schmelter我認爲這是一些IDE錯誤 – Bulvak