В принципе, я хотел бы найти способ сделать что-то вроде:
<asp:Label ID = "lID" runat = "server" AssociatedControlID = "txtId" Text = "<%# MyProperty %>"></asp:Label>
Я знаю, что могу установить его из кода (написав lId.Text = MyProperty), но я бы предпочел сделать это в разметке, и я просто не могу найти решение. (MyProperty - это строковое свойство) ваше здоровье





Вызов lID.Databind () из кода программной части
Оставьте разметку как есть и вызовите Page.DataBind (); в вашем коде позади.
<asp:Label id = "lID" runat = "server"><%= MyProperty %></asp:Label>
поскольку теги asp.net не допускают конструкции <%%>, вы не можете использовать Text = "<% = MyProperty%>".
<div> <%=MyProperty"%></div>
Элемент управления меткой даже не отображает тег div. Может быть, было бы разумно, если бы вы предложили <span>, но даже это не имело бы такого же эффекта, поскольку вы избегаете всех свойств метки и запрещаете возможность использовать темы.
да, в моем случае нет необходимости в div, поскольку я использую свойство AssociatedControlId элемента управления, чтобы создать метку для текстового поля.
Ты можешь сделать
<asp:Label runat = "server" Text='<%# MyProperty %>' />
И затем Page.DataBind () в выделенном коде.
Вы пропустили% слева ... должно быть: Text='<%# MyProperty %>' Несмотря на это, спасибо. У вас есть единственный ответ, верный на 99%. :) Также стоит отметить, что можно сделать так: Text='<%# myClass.MyProperty %>'
Когда вы используете объявление <% # MyProperty%>, вам нужно привязать его к базе данных, но при использовании <% = MyProperty%> вы этого не делаете (что похоже на просто написание Response.Write (MyProperty).
Кодовые выражения также являются вариантом. Их можно использовать внутри кавычек в тегах ASP, в отличие от стандартных тегов <% =%>.
Общий синтаксис:
<%$ resources: ResourceKey %>
Для appSettings есть встроенное выражение:
<%$ appSettings: AppSettingsKey %>
Подробнее об этом здесь: http://weblogs.asp.net/infinitiesloop/archive/2006/08/09/The-CodeExpressionBuilder.aspx
Я не думаю, что это ответ на вопрос, поскольку вопрос конкретно требует, чтобы значение свойства отображалось в метке. Я не понимаю, как этот метод позволяет этого добиться.
используя CodeExpressionBuilder, я мог легко отобразить значение свойства на этикетке. Просто посмотрите этот пост в блоге, он очень полезен.
Вы можете сделать это:
<asp:Label ID = "lblCurrentTime" runat = "server">
Last update: <%=DateTime.Now.ToString()%>
</asp:Label>
Спасибо, я воспользовался этим решением, но даже вызов Page.DataBind () работает нормально.