不幸的是,以上无法完成.. 问题是这个文本框元素在页面中多次 self-6ren">
gpt4 book ai didi

c# - ASP.NET TextBox - 是否可以使用行内代码 <% %> 初始化文本属性

转载 作者:太空狗 更新时间:2023-10-29 21:19:23 26 4
gpt4 key购买 nike


我需要使用其他地方的属性初始化文本框元素的文本属性,而实际上我可以简单地从代码中执行此操作,但如果可以这样做会更方便:

<asp:TextBox runat="server" Text="<%= new ContextItem("title").Value %>" />

不幸的是,以上无法完成..
问题是这个文本框元素在页面中多次 self 重复,我的问题是:

有什么建议可以让它更干净,然后在后面的代码中一遍又一遍地编写它吗?
感谢,阿德勒

最佳答案

好的,所以这里的基本问题是,如果您使用内联表达式,则不能使用它来设置绑定(bind)上下文之外的服务器端控件的属性(使用绑定(bind)表达式)。我推断这可能是因为这些内联表达式的评估时间。但是,您可以通过这种方式呈现客户端标记。如果您想将功能纯粹保留在您的 aspx 文件中,这就是实现它的方法。

编辑:根据 Justin Keyes 的输入,似乎可以使用绑定(bind)表达式来设置属性。您需要手动调用 Page.DataBind()触发文本框来计算表达式(见下面的答案)。

比如这个:

<asp:Label ID="lbl" runat="server" Text="<%= Now.ToShortDateString() %>"  />

将产生这个输出:

<%= Now.ToShortDateString() %>

另一方面:

<%= "<span>" & Now.ToShortDateString() & "</span>"%>

将产生这个输出:

7/27/2011

解决这个问题的“正常”方法就是设置 Label.Text Page.Load 中的属性事件处理程序或其他适当的事件处理程序,具体取决于您的需要,如下所示。这是我相信大多数人更愿意这样做的方式,在我看来也是最容易理解的。

标记:

<asp:Label ID="lbl" runat="server" />

代码:

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
lbl.Text = Now.ToShortDateString()
End Sub

关于c# - ASP.NET TextBox - 是否可以使用行内代码 <% %> 初始化文本属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6836534/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com