我需要使用其他地方的属性来初始化文本框元素的文本属性,实际上我可以简单地从代码中执行此操作,但如果可以这样做会更方便:
<asp:TextBox runat="server" Text="<%= new ContextItem("title").Value %>" />
不幸的是,以上无法完成..
问题是这个文本框元素在页面中重复多次,我的问题是:
有什么建议如何使其更清晰,然后在后面的代码中一次又一次地编写它吗?
感谢,
阿德勒
好的,这里的基本问题是,如果您使用内联表达式,则不能使用它在绑定上下文之外设置服务器端控件的属性(使用绑定表达式)。我推断这可能是因为这些内联表达式的评估时间。但是,您可以通过这种方式呈现客户端标记。如果您想将功能纯粹保留在 aspx 文件中,则可以这样做。
编辑:根据 Justin Keyes 的输入,似乎可以使用绑定表达式来设置属性。需要手动调用Page.DataBind()
触发文本框来计算表达式(参见下面的答案)。
例如这个:
<asp:Label ID="lbl" runat="server" Text="<%= Now.ToShortDateString() %>" />
将产生以下输出:
另一方面:
<%= "<span>" & Now.ToShortDateString() & "</span>"%>
将产生以下输出:
2011年7月27日
解决这个问题的“正常”方法就是设置Label.Text
属性在一个Page.Load
事件处理程序或其他适当的事件处理程序,具体取决于您的需要,如下所示。我相信这是大多数人更喜欢的方式,并且在我看来也是最容易理解的。
Markup:
<asp:Label ID="lbl" runat="server" />
Code:
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
lbl.Text = Now.ToShortDateString()
End Sub
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)