تعتبر صفحة نموذج ويب ASP.NET عبارة عن ملف نصي تعريفي بامتداد .aspx. بالإضافة إلى المحتوى الثابت، يمكنك وضع علامة على العناصر باستخدام ثمانية تراكيب مختلفة. يراجع هذا القسم عناصر بناء الجملة هذه ويقدم بعض الأمثلة حول كيفية استخدامها.
بناء جملة عرض التعليمات البرمجية:
يتم تمثيل كتل عرض التعليمات البرمجية <% %> و<%= %> بواسطة عناصر <% ... %>، مما يسمح لك بالتحكم في المحتوى المقدم ويتم تنفيذها أثناء مرحلة العرض لصفحة نماذج الويب تنفيذ. يوضح المثال التالي كيفية استخدامها للتنقل عبر محتوى HTML.
<%@ لغة الصفحة = "VB" %>
<أتش تي أم أل>
<الجسم>
<% خافت I كعدد صحيح
لأني = 0 إلى 7%>
< حجم الخط = "<%=I%>"> أهلاً بالعالم </font> <br>
<%التالي %>
</ الجسم>
</html>
<% ... %> فقط، في حين أن التعبير الذي يحتوي على علامة التساوي (<%= ... %>) سيحسب النتيجة عند عرض المحتوى. ولذلك، يعرض <%="Hello World" %> نفس النتيجة مثل كود C# <% Response.Write("Hello World" %>).
لاحظ أنه بما أن اللغة تتطلب استخدام علامات لإنهاء أو فصل البيانات (مثل الفاصلة المنقوطة؛ في C#)، فمن المهم وضع هذه العلامات بشكل صحيح.
رمز C#
<% Response.Write("Hello World %>" فاصلة منقوطة لإنهاء العبارة.
<%="Hello World" %> خطأ: يسبب "Response.Write("Hello World";);".
<%="Hello World" %> لا يلزم وجود فاصلة منقوطة.
بناء جملة إعلان التعليمات البرمجية: <script runat="server">
تحدد كتلة إعلان التعليمات البرمجية متغيرات الأعضاء والأساليب التي سيتم تجميعها في فئة الصفحة. يمكن استخدام هذه الكتل لإنشاء منطق الصفحة والتنقل. يوضح المثال التالي كيفية تعريف طريقة الطرح في كتلة <script runat="server"> ثم استدعائها في الصفحة.
<أتش تي أم أل>
< لغة البرمجة = "VB" runat = الخادم >
دالة الطرح (Num1 كعدد صحيح، Num2 كعدد صحيح) كعدد صحيح
إرجاع رقم 1-رقم 2
وظيفة النهاية
</نص >
<جسم>
<%
الرقم الخافت كعدد صحيح = 100
افعل بينما الرقم> 0
الاستجابة.كتابة("القيمة:" & الرقم & "<br>")
الرقم = طرح (الرقم، 1)
حلقة
%>
</ الجسم>
</html>
يرجى ملاحظة: على عكس ASP - يجب تعريف الوظائف في ASP في الكتلة <% %> - يجب تعريف جميع الوظائف والمتغيرات العامة باستخدام علامة <script runat=server>. سيؤدي تعريف الوظيفة في الكتلة <% %> إلى ظهور رسالة خطأ في تجميع بناء الجملة.
بناء جملة التحكم في الخادم
تسمح عناصر تحكم خادم ASP.NET المخصصة لمطوري الصفحات بإنشاء واجهات مستخدم HTML ديناميكيًا والاستجابة لطلبات العميل. يتم التعبير عنها في ملفات باستخدام بناء جملة تعريفي قائم على العلامات. تختلف هذه العلامات عن العلامات الأخرى من حيث أنها تحتوي على سمة "runat=server". يوضح المثال التالي كيفية استخدام عنصر تحكم الخادم <asp:label runat = "server"> في صفحة ASP.NET. يتوافق عنصر التحكم هذا مع فئة التسمية في مساحة الاسم System.Web.UI.WebControls.
من خلال إضافة علامة بمعرف "Message"، يمكن إنشاء مثيل التسمية في وقت التشغيل:
<asp:label id="Message" Font-size=24 runat="server"/>
يمكننا استخدام هذا الاسم للوصول إلى عنصر التحكم . يقوم التعليمة البرمجية التالية بتعيين خاصية النص لعنصر التحكم.
message.Text = "مرحبًا بك في ASP.NET"
<أتش تي أم أل>
< لغة البرمجة = "VB" runat = الخادم >
Sub Page_Load (المرسل ككائن، E كـ EventArgs)
message.Text = "مرحبًا بك في ASP.NET"
نهاية الفرعية
</ نص >
<الجسم>
<asp:معرف التسمية = "حجم الخط" = 24 تشغيل = الخادم/>
</ الجسم>
</html>
بناء جملة التحكم في خادم HTML
يسمح التحكم في خادم HTML للمطورين بتشغيل عناصر HTML في الصفحة برمجيًا. تختلف علامة تحكم خادم HTML عن عنصر HTML الخاص بالعميل حيث أنها تحتوي على السمة "runat=server". يوضح المثال التالي كيفية استخدام عنصر تحكم خادم HTML <span runat=server> في صفحة ASP.NET.
<أتش تي أم أل>
< لغة البرمجة = "VB" runat = الخادم >
Sub Page_Load (المرسل ككائن، E كـ EventArgs)
message.InnerHtml = "مرحبًا بك في ASP.NET"
نهاية الفرعية
</ نص >
<الجسم>
<span id="Message" style="font-size:24" runat=server/>
</ الجسم>
</html>
بناء جملة ربط البيانات: <%# %>
يتيح دعم ASP.NET المدمج لربط البيانات لمطوري الصفحات ربط خصائص التحكم بشكل هرمي بقيم حاوية البيانات. يتم تنفيذ التعليمات البرمجية الموجودة في كتلة التعليمات البرمجية <%# %> فقط عند استدعاء أسلوب DataBind الخاص بحاوية التحكم الأصلية الخاصة بها. يوضح المثال التالي كيفية استخدام بناء جملة ربط البيانات في عنصر التحكم <asp:datalist runat=server>.
في قائمة البيانات هذه، يتم تعيين قالب لكل عنصر. يتم تحديد محتوى قالب العنصر باستخدام تعبير ربط البيانات، ويشير Container.DataItem إلى مصدر البيانات الذي تستخدمه قائمة بيانات MyList.
<asp:datalist id="MyList" runat=server>
<قالب العنصر>
إليك القيمة: <%# Container.DataItem %>
</قالب العنصر>
</asp:datalist>
في هذه الحالة، يتم تعيين مصدر البيانات لعنصر التحكم MyList برمجيًا، ثم يتم استدعاء الأسلوب DataBind().
سيؤدي استدعاء أسلوب DataBind لعنصر التحكم إلى تشغيل شجرة متكررة (بدءًا من عنصر التحكم إلى عناصر التحكم السفلية في الشجرة)؛ سيتم رفع حدث DataBinding لكل عنصر تحكم خادم في التسلسل الهرمي، وسيظهر تعبير ربط البيانات في قيم عنصر التحكم يتم حسابها وفقا لذلك. لذلك، إذا تم استدعاء أسلوب DataBind الخاص بالصفحة، فسيتم استدعاء كل تعبير ربط بيانات في الصفحة.
<أتش تي أم أل>
< لغة البرمجة = "VB" runat = الخادم >
Sub Page_Load (المرسل ككائن، E كـ EventArgs)
تعتيم العناصر كقائمة صفيف جديدة
العناصر.إضافة("واحد")
العناصر.إضافة("اثنان")
العناصر.إضافة("ثلاثة")
MyList.DataSource = العناصر
MyList.DataBind()
النهاية الفرعية
</
البرنامج النصي >
<الجسم>
<asp:datalist id="MyList" runat=server>
<قالب العنصر>
إليك القيمة: <%# Container.DataItem %>
</قالب العنصر>
</asp:قائمة البيانات>
</ الجسم>
</html>
يتضمن ASP.NET 2.0 أيضًا بناء جملة مبسط جديد لربط البيانات، والذي يسمح لعناصر التحكم بربط البيانات تلقائيًا بعناصر تحكم مصدر البيانات دون الحاجة إلى استدعاء DataBind() في رمز الصفحة. تمت مناقشة بناء الجملة هذا في الفصل "إجراء الوصول إلى البيانات".
بناء جملة علامة الكائن: <object runat="server" />
تسمح علامة الكائن لمطوري الصفحة باستخدام بناء جملة تعريفي قائم على العلامة لإعلان وإنشاء مثيلات متغيرة. يوضح المثال التالي كيفية استخدام تدوين الكائن لإنشاء مثيل لفئة ArrayList.
يتم إنشاء هذا الكائن تلقائيًا في وقت التشغيل ويمكن الوصول إليه عبر "عناصر" المعرف.
<أتش تي أم أل>
< لغة البرمجة = "VB" runat = الخادم >
Sub Page_Load (مرسل ByVal ككائن، ByVal E كـ EventArgs)
ArrayItems.Add("واحد")
ArrayItems.Add("اثنان")
ArrayItems.Add("ثلاثة")
MyList.DataSource = ArrayItems
MyList.DataBind()
نهاية الفرعية
</نص >
<جسم>
<object id="ArrayItems" class="System.Collections.ArrayList" runat=server/>
<asp:datalist id="MyList" runat=server>
<قالب العنصر>
إليك القيمة: <%# Container.DataItem %>
</قالب العنصر>
</asp:قائمة البيانات>
</ الجسم>
</html>
بناء جملة التعليق من جانب الخادم: <%-- تعليق --%>
تسمح التعليقات من جانب الخادم لمطوري الصفحات بمنع تنفيذ وعرض كود الخادم (بما في ذلك عناصر تحكم الخادم) والمحتوى الثابت. يوضح المثال التالي كيفية منع تنفيذ المحتوى وإرساله إلى العميل. يرجى ملاحظة أنه سيتم تصفية كافة المعلومات بين <%-- و-%> وستكون مرئية فقط في ملف الخادم الأصلي، حتى لو كان يحتوي على توجيهات ASP.NET أخرى.
<أتش تي أم أل>
<الجسم>
تم إخفاء المحتوى أدناه من عملاء المتصفح باستخدام تعليق من جانب الخادم
(اعرض مصدر .aspx لمعرفة ما نعنيه :-)
<%--
<asp:calendar id="MyCal" runat=server/>
<% لأني = 0 إلى 44%>
أهلاً بالعالم <br>
<%التالي %>
--%>
</ الجسم>
</html>
بناء جملة تضمين الملف من جانب الخادم: <-- #Include File="Locaton.inc" -->
يسمح تضمين الملف من جانب الخادم (#Include) للمطورين بإدراج محتوى ملف معين في أي مكان على ASP. صافي. يوضح المثال التالي كيفية إدراج عناوين وتذييلات مخصصة في الصفحة.
<أتش تي أم أل>
<الجسم>
<!-- #Include File="Header.inc" -->
<br />
<h3> محتوى الصفحة الرئيسية </h3>
<br />
<!-- #Include File="Footer.inc" -->
</ الجسم>
</html>
بناء جملة التعبير: <%$ ... %> الميزات الجديدة في 2.0
ASP.NET 2.0 تضيف بناء جملة تعبير تعريفي جديد لاستبدال القيمة قبل تحليل الصفحة. يكون ذلك مفيدًا جدًا عندما نحتاج إلى استبدال قيمة خاصية التحكم بالخادم بقيمة سلسلة الاتصال أو إعداد التطبيق في ملف Web.config. ويمكن استخدامه أيضًا لاستبدال القيم في ملفات الموارد أثناء الترجمة.
<asp:SqlDataSource ID = "SqlDataSource1" ConnectionString = '<%$ ConnectionStrings: Pubs %>' runat = "server" SelectCommand = "sp_GetAuthors" />
<asp:Label ID="Label1" Text='<%$ الموارد: ExchRate, ConvertLabel %>' runat="server"/>