[英]Invisible controls still being rendered
我遇到了最棘手的問題。
我在Master Page中有兩個PlaceHolders; 一個包含已注銷用戶的控件,另一個包含已登錄用戶的控件。
他們是:
plhLoggedOut
plhLoggedIn
在我的Page_Load(主頁面)中,我設置了它們的可見性:
//LOGGED-IN?
plhLoggedOut.Visible = (app.UserID == 0);
plhLoggedIn.Visible = (app.UserID != 0);
但是,仍在呈現兩個PlaceHolders的內容。
我甚至將其可見性寫入狀態消息,並且該狀態消息確認在任何給定時間只有一個可見。 例如,
plhLoggedOut.Visible == True; plhLoggedIn.Visible == False
任何想法如何發生(以及如何解決)?
非常感謝,
邁克爾
也許在您的代碼中的其他位置,您將這些面板的父控件設置為可見,這會破壞所有子項並將它們設置為可見。 您需要更改代碼,以便在其父控件之后設置plhLoggedOut和plhLoggedIn可見性。
我剛刪除了舊的PlaceHolders並創建了兩個具有不同ID的新的PlaceHolders。 然后它開始工作了。
我依稀記得之前有類似奇怪的行為,由於某些原因,代碼隱藏和標記斷開連接。 這可能是因為我不使用可視化設計器,並手動編寫.NET標記和designer.cs文件。
僅供參考,slolife,我剛測試它,並且可見性不會像從父控件到子控件那樣傳遞下來。 即使將容器的可見性設置為true,也可以嵌套隱藏的控件,該控件保持隱藏狀態。
感謝大家,
邁克爾
你打電話也試試
<asp:PlaceHolder ID="plhLoggedOut" runat="server" Visible="<%# app.UserID == 0 %>" />
<asp:PlaceHolder ID="plhLoggedIn" runat="server" Visible="<%# app.UserID != 0 %>" />
然后對它們進行數據綁定以使表達式得到評估。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.