隱藏(visible="false"
)面板未呈現,但數據綁定在包含的元素上執行。爲什麼這樣做?更重要的是,如何避免它?防止隱藏asp.net面板中的數據綁定
下面是一個例子,其中它是煩人:
<asp:Panel ID="UserPanel" runat="server" visible="<%# SelectedUser != null %>">
<%# SelectedUser.Name %>
</asp:Panel>
如果SelectedUser
是null
,面板不渲染,但SelectedUser.Name
進行評價並生成錯誤。
我明顯可以寫<%# SelectedUser != null ? SelectedUser.Name : "" %>
,但它增加了混亂。
當我知道不需要時,是否有方法可以簡單且優雅地防止面板內的數據綁定?
Panel
控制在這裏並不重要,它可能是一個簡單的HTML元素的佔位符,它帶有runat="server"
。
這是一個很好的解決方案。添加'DataPlaceHolder'不是一個高昂的代價,所有東西都是可讀的。儘管如此,我寧願選擇另一個名字。 – Mart
如何停止雙向綁定? (BindItem)。如果我把這個DataPlcaeHolder中的文本框放在visible = false的位置。在更新方法中,它仍然獲得綁定並獲得值null。 – Yiping
非常好的解決方案。 –