¿Alguien puede explicar por qué no puede usar bloques de código en línea dentro de las declaraciones de control del servidor en ASP.Net?¿Hay alguna forma de pasar de forma declarativa los valores de propiedad de código subyacente a los controles del servidor?
El siguiente es un ejemplo sencillo ...
....
<form id="form1" runat="server">
<asp:Label ID="Label1" runat="server" Text="<%= SomeProperty %>"></asp:Label>
</form>
....
El bloque de código se vuelve literalmente a la página ...
<span id="Label1"><%= SomeProperty %></span>
Mis pensamientos iniciales son que tiene que ver con el orden que estas cosas se procesen en el ciclo de vida de la página. Los bloques <%=...%>
son, según tengo entendido, equivalentes a Response.Write(...)
en código subyacente. Y dado que el control del servidor no se representa como se declaró en el marcado, supongo que es posible que no se pueda procesar un bloque de código incrustado antes de que tenga lugar este procesamiento.
Estaría muy agradecido de que alguien pudiera explicarlo un poco mejor.
Sin embargo, el bloque de código <%#...%>
enlace de datos es obviamente diferente en la forma en que se comporta, pero puede alguien decirme por qué es posible integrar estas dentro de un control de servidor ...
....
<asp:Repeater id=Repeater1 runat="server">
....
<ItemTemplate>
<asp:Label ID="Label1" runat="server" Text='<%# Eval(“SomeProperty”) %>'></asp:Label>
</ItemTemplate>
....
</asp:Repeater>
....
Estos trabajos multa.
[Establecer propiedad visible con la etiqueta servidor <%= %> en Framework 3.5] (http://stackoverflow.com/questions/9595851/set-visible-property-with-server-tag-in-framework-3-5) –