הבדלים בין סוגי ה - Inline Code (= # $) בין<% %>
אף פעם לא הבנתי מה מסמל כל סוג של קוד inline, כלומר :
1. כתיבת קוד בין הסימנים <% %>
2. כתיבת קוד בין הסימנים <% =%>
3. כתיבת קוד בין הסימנים <% #%>
4. כתיבת קוד בין הסימנים <% $%>
5. כתיבת קוד בין הסימנים <% @%>
מצאתי את הפוסט
הזה שקיבץ את כל הלינקים להסברים אודות כל סוג.
ובקצרה.
כשנרצה (מאוד לא מומלץ) לכתוב קוד בתוך ה - aspx נוכל לכתוב בין הסימנים.
<form id="form1" runat="server">
<b>
<% for (int i = 0; i < 6; i++) %></b> <b>
<% { Response.Write("<br>" + i.ToString()); }%></b>
</form>
סימן ה = אומר, שאנחנו רוצים להחזיר איזשהוא ביטוי, לדוגמא.
Hello <%= name %>!
<table>
<tr>
<td>
<%= DateTime.Now.ToLongDateString(); %>
</td>
</tr>
</table>
הדוגמא הראשונה, בהנחה שיש לנו משתנה בשם name, בדוגמא השנייה אנחנו מחזירים ערך מ - DateTime.
סימן ה - # אומר נשתמש כשנרצה לעשות Binding למאפיין של פקד, נפוץ בעיקר בתוך ItemTemplate של אובייקטים שמקשורים למקור מידע, לדוגמא:
<asp:FormView ID="FormView1" DataSourceID="SqlDataSource1" DataKeyNames="ProductID"
runat="server">
<ItemTemplate>
<table>
<tr>
<td align="right">
<b>Product ID:</b>
</td>
<td>
<%# Eval("ProductID") %>
</td>
</tr>
<tr>
<td align="right">
<b>Product Name:</b>
</td>
<td>
<%# Eval("ProductName") %>
</td>
</tr>
</table>
</ItemTemplate>
</asp:FormView>
סימן ה $ אומר, שאנחנו מכניסים ערך שמוגדר במקום חיצוני, כמו Config או Resource, לדוגמא.
<asp:Literal ID="Literal1" runat="server" text="<%$ AppSettings: copyright %>"/>
בהנחה שב - AppSettings יש key בשם copyright.
לקריאה נוספת ב - MSDN (נקודה מעניינת שראיתי שם - ושווה לחקור את זה - שאפשר לייצר הגדרה עצמית עבור צד שמאל של ה - expression, כלומר לכאורה אני יכול לכתוב:
<asp:Literal ID="Literal1" runat="server" text="<%$ MyLogic: abcd %>"/>
ויתבצע הלוגיקה שלי כדי לקחת את הערך על ידי המפתח abcd ממקום כלשהו)