1

我的代码隐藏中有一个公共属性,我想将它绑定到 .aspx 页面中的控件。如果我使用Page.DataBind()它,但我不想使用它,因为这会导致递归数据绑定到所有控件。

即使 Page.DataBind() 有一个重载的方法,它接受布尔值,指示我是否要递归调用它,这将是一个更好的选择,但目前它只会由于递归而降低性能。

我唯一的目标是将我的代码隐藏页面中的公共/受保护属性绑定到我的 .aspx 页面。有没有更好的选择?

4

2 回答 2

3

我猜你的绑定代码有点像

<%# MyProperty %>

仅当您调用时才会发生这种绑定Page.DataBind(),但如果您编写:

<%= MyProperty %>

那么你不必打电话Page.DataBind()

于 2012-08-01T13:47:06.270 回答
2

接受的答案适用于简单显示值,但不适用于在服务器标签中使用数据绑定值,例如

<asp:Literal Visible='<%# IsNewApplication %>' runat="server">New Application</asp:Literal>

我发现解决这个问题的唯一方法是使用PlaceHolder控件来隔离可绑定标签块,然后DataBind()PlaceHolder.

由您决定这是否比仅在代码中设置可见性更难看/合适!

于 2012-08-23T12:35:52.970 回答