我的代码隐藏中有一个公共属性,我想在.aspx页面中将它绑定到我的控件。如果我使用Page.DataBind()
它可以工作,但我不想使用它,因为这会导致递归数据绑定到所有控件。
即使Page.DataBind()有一个重载的方法接受布尔值,表明我是否想要递归地调用它,它本来是一个更好的选择,但目前它只会因递归而降低性能。
我唯一的目标是将代码隐藏页面中的公共/受保护属性绑定到我的.aspx页面。还有更好的选择吗?
答案 0 :(得分:3)
我猜您的绑定代码类似于
<%# MyProperty %>
只有在您拨打Page.DataBind()
但是如果您写下:
<%= MyProperty %>
然后您不必致电Page.DataBind()
答案 1 :(得分:2)
接受的答案适用于简单显示值,但不适用于在服务器标签中使用数据绑定值,例如
<asp:Literal Visible='<%# IsNewApplication %>' runat="server">New Application</asp:Literal>
我发现解决此问题的唯一方法是使用PlaceHolder
控件来隔离可绑定标记的块,然后在DataBind()
上调用PlaceHolder
。
由您来决定这是否比仅仅在代码中设置可见性更难或更合适!