Ответ 1
Вы не можете использовать <%= ... %>
для установки свойств элементов управления на стороне сервера.
Встроенные выражения <% %>
могут использоваться только в
aspx page или пользовательский уровень верхнего уровня документа, но не может быть внедрен в
атрибут тега управления сервером (например, <asp:Button... Text =<% %> ..>
).
Если ваш TextBox находится внутри элементов управления DataBound, таких как GridView, ListView, вы можете использовать синтаксис <%# %>
. ИЛИ вы можете явно вызывать DataBind()
на элементе управления с помощью кода или встроенного сервера script.
<asp:TextBox runat="server" ID="txtbox" class='<%# TEXTBOX_CSS_CLASS %>' />
//code За файлом
protected void Page_Load(object sender, EventArgs e)
{
txtbox.DataBind();
}
ASP.NET включает в себя несколько встроенных построителей выражений, которые позволяют извлекать пользовательские настройки приложения и информацию о строках соединения из файла web.config
. Пример:
- Ресурсы
- ConnectionStrings
- AppSettings
Итак, если вы хотите получить параметр приложения с именем className
из <appSettings>
части файла web.config
, вы можете использовать следующее выражение:
<asp:TextBox runat="server" Text="<%$ AppSettings:className %>" />
Однако выше фрагмент не является стандартом для чтения классных имен из приложений.
Вы можете создавать и использовать свой собственный пользовательский ExpressionBuilders
или использовать код позади как:
txtbox.CssClass = TEXTBOX_CSS_CLASS;
Проверьте эту ссылку при создании сборщиков пользовательских выражений. Когда вы создадите собственное выражение, вы можете отобразить значение, например:
<asp:TextBox Text="<%$ SetValue:SomeParamName %>"
ID="setting"
runat="server" />