您不能用于<%= ... %>
设置服务器端控件的属性。内联表达式<% %>
只能用于 aspx 页面或用户控件的顶级文档级别,但不能嵌入到服务器控件的标记属性中(例如 <asp:Button... Text =<% %> ..>
)。
如果您的 TextBox 在 DataBound 控件内,例如 GridView、ListView .. 您可以使用:<%# %>
语法。或者,您可以DataBind()
从代码隐藏或内联服务器脚本显式调用控件。
<asp:TextBox runat="server" ID="txtbox" class='<%# TEXTBOX_CSS_CLASS %>' />
// 代码后面的文件
protected void Page_Load(object sender, EventArgs e)
{
txtbox.DataBind();
}
ASP.NET 包含一些内置表达式生成器,允许您从web.config
文件中提取自定义应用程序设置和连接字符串信息。例子:
因此,如果要检索className
从文件<appSettings>
部分命名的应用程序设置web.config
,可以使用以下表达式:
<asp:TextBox runat="server" Text="<%$ AppSettings:className %>" />
但是,上面的代码片段并不是从 Appsettings 中读取类名的标准。
您可以构建和使用您自己的自定义ExpressionBuilders
或使用后面的代码:
txtbox.CssClass = TEXTBOX_CSS_CLASS;
检查有关构建自定义表达式构建器的此链接。构建自定义表达式后,您可以显示如下值:
<asp:TextBox Text="<%$ SetValue:SomeParamName %>"
ID="setting"
runat="server" />