在.aspx页面上,将服务器控件的属性链接到页面类的属性(其代码隐藏)的最佳方法是什么?我读过的唯一方法是使用数据绑定: asp:TextBox ID="txt" runat="server" Text='%# Me.SomePropOfMine %' / 然后从
<asp:TextBox ID="txt" runat="server" Text='<%# Me.SomePropOfMine %>' />
然后从代码隐藏中调用Me.txt.DataBind()或Me.Databind().有没有办法单独在.aspx页面上建立这种关系,或者如果你有许多控件要绑定(不绑定整个页面),简化过程?
您可以使用Databind()整个Me或容器控件(您也可以在所需的控件周围添加PlaceHolder控件).因为DataBind()在Child控件上递归递归.如果您不需要DataBinding,则更好的方法是使用Code Expression Binder
http://weblogs.asp.net/infinitiesloop/archive/2006/08/09/The-CodeExpressionBuilder.aspx
这允许您使用<%$Code:Me.Property%>而不是<%#Me.Property%>.
有关表达式构建器的更多信息,如果您根本不了解它们,请查看此简介:
http://www.4guysfromrolla.com/articles/022509-1.aspx
请注意,<%= Me.Property%>不适用于像< asp:TextBox ......等网页控件...... 附: 代码表达式构建器的唯一缺点是您没有智能感知.我通常通过编写<%= Me.TestSomething%>来解决这个问题.在标记内部获取我的intellisense,然后将<%=替换为<%$代码:完成后.烦人,但如果你不想去DataBind()路线(你不应该导致它可能与你想要做的现有真实数据绑定冲突.相信我,试图让这些工作是地狱),然后这是要走的路.