Kann jemand erklären, warum Sie keine Inline-Code-Blöcke in Serversteuerdeklarationen in ASP.Net verwenden können?Gibt es eine Möglichkeit, Code-Behind-Eigenschaftswerte deklarativ an Serversteuerelemente weiterzugeben?
Das folgende ist ein einfaches Beispiel ...
....
<form id="form1" runat="server">
<asp:Label ID="Label1" runat="server" Text="<%= SomeProperty %>"></asp:Label>
</form>
....
Der Codeblock auf der Seite wörtlich wiedergegeben wird ...
<span id="Label1"><%= SomeProperty %></span>
Meine ersten Gedanken sind es mit der Bestellung zu tun hat dass diese Dinge im Seitenlebenszyklus verarbeitet werden. Die <%=...%>
Blöcke sind, wie ich es verstehe, äquivalent zu Response.Write(...)
in Code-behind. Und da das Server-Steuerelement nicht wirklich so dargestellt wird, wie es im Markup deklariert ist, ist es wahrscheinlich nicht möglich, einen eingebetteten Codeblock zu verarbeiten, bevor dieses Rendering stattfindet.
Ich wäre sehr dankbar, dass jemand das ein wenig besser erklären könnte.
jedoch die Datencodeblock <%#...%>
Bindung ist offensichtlich anders in der Art und Weise verhält es sich, aber kann mir jemand sagen, warum es möglich ist, diese innerhalb einer Server-Steuerelement einzubetten ...
....
<asp:Repeater id=Repeater1 runat="server">
....
<ItemTemplate>
<asp:Label ID="Label1" runat="server" Text='<%# Eval(“SomeProperty”) %>'></asp:Label>
</ItemTemplate>
....
</asp:Repeater>
....
Dies funktioniert fein.
[Set Visible-Eigenschaft mit Server-Tag <%= %> in Framework 3.5] (http://stackoverflow.com/questions/9595851/set-visible-property-with-server-tag-in-framework-3-5) –