Nie można używać <%= ... %>
ustawić właściwości kontrole po stronie serwera. Wyrażenia w wierszu <% %>
można używać tylko na stronie głównej aspx lub poziomie kontrolki użytkownika, ale nie można ich osadzić w atrybucie znacznika sterowania serwera (na przykład <asp:Button... Text =<% %> ..>
).
Jeśli twój TextBox znajduje się wewnątrz formantu DataBound, takiego jak GridView, ListView .., możesz użyć składni: <%# %>
. LUB możesz zadzwonić jawnie DataBind()
na formant ze skryptu z serwera lub wbudowanego skryptu serwera.
<asp:TextBox runat="server" ID="txtbox" class='<%# TEXTBOX_CSS_CLASS %>' />
// kod związany z pliku
protected void Page_Load(object sender, EventArgs e)
{
txtbox.DataBind();
}
ASP.NET zawiera kilka wbudowanych w budowniczych ekspresyjnych, które pozwala wyodrębnić niestandardowe ustawienia aplikacji i informacji ciąg połączenia z pliku web.config
. Przykład:
- Resources
- connectionStrings
- AppSettings
Tak więc, jeśli chcesz odzyskać ustawienie aplikacji o nazwie className
od części <appSettings>
pliku web.config
, można użyć następującego wyrażenia :
<asp:TextBox runat="server" Text="<%$ AppSettings:className %>" />
Powyższy fragment nie jest jednak standardem do odczytu nazw klas z Appsettings.
można budować i użyć swój własny ExpressionBuilders
lub za pomocą kodu jako:
txtbox.CssClass = TEXTBOX_CSS_CLASS;
Check this link na budowaniu budowniczych Niestandardowe wyrażenie. Po zbudowaniu niestandardowego wyrażenia można wyświetlić wartość, taką jak:
<asp:TextBox Text="<%$ SetValue:SomeParamName %>"
ID="setting"
runat="server" />
Skąd się bierze ta dziwna składnia <% #? – spankmaster79
@ spankmaster79: przeczytaj powyższą odpowiedź, aby uzyskać szczegółowe wyjaśnienie. – naveen