إذا كنت معتادًا على ASP الكلاسيكي، فستكون على دراية ببناء جملة ربط البيانات في ASP.NET، حتى لو لم تكن الوظائف متماثلة. التعبير عن ربط البيانات هو الرمز الموجود بين <%# و%> في ملف ASPX. فهو يسمح بربط البيانات بوحدة التحكم، بالإضافة إلى الخصائص والتعبيرات ونتائج استدعاءات الأساليب على الصفحة التي يجب ربطها بوحدة التحكم. على الرغم من أن هذه الميزة سهلة الاستخدام، إلا أنها تسبب أحيانًا ارتباكًا عند تحديد المحتوى المسموح بربطه وما إذا كان قد تم استخدامه أم لا.
عناصر ربط البيانات
عند استدعاء أسلوب DataBind في ASP.NET للصفحة، يتم ربط تعبير ربط البيانات بالخصائص وخصائص التحكم بالخادم ومصادر البيانات في ASP.NET. يمكنك وضع تعبير على الجانب الرقمي لزوج قيمة/قيمة السمة عند فتح علامة تبويب يتحكم فيها الخادم أو في أي مكان بالصفحة. جميع تعبيرات ربط البيانات، بغض النظر عن مكان وضعها، تكون محاطة بأحرف <%# و%>.
عند استخدام وحدة تحكم البيانات (Repeater، DataGrid، وما إلى ذلك)، تكون معلمة التعبير عادةً هي اسم العمود الخاص بمصدر البيانات. بغض النظر، يمكن استخدام أي تعبير صالح طالما أنه يُرجع قيمة. وبالمثل، يمكن استخدام نفس بناء الجملة لعناصر تحكم القائمة الخارجية. يتضمن ذلك عرض القيم على الصفحة أو تجميع خصائص وحدة التحكم.
Container.DataItem هو اسم مستعار لوقت التشغيل لـ DataItem لعنصر معين. يقوم بتعيين عنصر واحد من مصدر بيانات، مثل صف من استعلام بيانات أو عنصر واحد من متجه. يتم تحديد نوع البيانات الفعلي لـ DataItem بواسطة مصدر البيانات. لذلك، عند التعامل مع متجه للأعداد الصحيحة، يكون DataItem أيضًا عددًا صحيحًا.
تستعرض القائمة التالية بعض مواقف بناء جملة VB.NET:
<%# Container.DataItem %>--إرجاع ناقل سلسلة
<%# Container.DataItem("expression") %>--إرجاع عنصر محدد في حاوية DataView الحقل
< %# Container.DataItem.PropertyName %>--إرجاع قيمة الخاصية لسلسلة معينة في مصدر البيانات
<%# CStr(Container.DataItem.PropertyName) %>--إرجاع قيمة الخاصية وتحويلها إلى نموذج سلسلة
عندما باستخدام C#، يكون بناء الجملة مختلفًا قليلاً. تحتوي القائمة التالية على رمز C# المطابق للقائمة أعلاه. لاحظ أن بناء الجملة الأساسي هو نفسه، ولكن هناك تغييرات في تحويل قيم السمات وأنواع البيانات التي تم إرجاعها.
<%# Container.DataItem %>
<%# ((DataRowView)Container.DataItem)["PropertyName"] %>
<%# ((ObjectType)Container.DataItem).PropertyName %>
<%# ((ObjectType)Container. DataItem).PropertyName.ToString() %>
يكون بناء الجملة متسقًا عند العمل على خصائص الصفحة وطرقها. طالما تم إرجاع قيمة سلسلة، فإن بناء الجملة هو نفسه تمامًا. تعطي القائمة التالية مثالاً:
<%# propertyName %>--إرجاع قيم الخصائص على مستوى الصفحة
<asp:ListBox id="lstValues" datasource='<%# propertyName %>' runat="server">-- تُرجع نفس قيم خصائص مستوى الصفحة (المتجهات ومجموعات الكائنات وما إلى ذلك) المرتبطة بوحدة تحكم البيانات
<%# (objectName.PropertyName) %>--عرض قيم خصائص كائن مستوى الصفحة
<%# MethodName() %>--طريقة عرض الصفحة ترجع القيم
استخدم بناء الجملة التالي لاستخدام قيمة واحدة على الصفحة (القيم التي يتم إرجاعها بواسطة الخصائص والأساليب، وما إلى ذلك)
<%= القيمة %>
يوضح رمز C# في القائمة أ البيانات الربط في نموذج ويب ASP.NET. فهو يحدد اسم الموظف ورقم هاتفه من الجدول SQL Sever Northwind الموظفين. يتم عرض قيمة الاستعلام من خلال وحدة تحكم ASP.NET Repeater. يتم إدراج قيم الأعمدة عبر ربط البيانات. يتم تجميع عنوان النموذج للجدول من خلال استدعاء الأسلوب. بالإضافة إلى ذلك، يتم استخدام الخاصية ItemIndex الخاصة بـ Dataitem لعرض عدد الصفوف. تبدأ الخاصية ItemIndex عند 0 وتتم زيادتها بمقدار 1 بين شاشات العرض.
تحتوي القائمة B على كود VB.NET المكافئ. والفرق الرئيسي هو أن VB.NET يستخدم الأقواس بينما يستخدم C# الأقواس المربعة. وصب الصفوف غير ضروري في VB.NET.
يعد استخدام Contain.DataItem أمرًا مملاً بعض الشيء، لأنه يتعين عليك الانتباه إلى أنواع البيانات وتحويل أنواع البيانات في أي وقت. توفر Microsoft فئة DataBinder، والتي يمكنها تبسيط التطوير بشكل أكبر.
تم شرحاستخدام
فئة DataBinder DataBinder بالتفصيل في وثائق Microsoft (MSDN). تسمح هذه الطريقة لمصمم RAD بإنشاء بنية ربط البيانات التي تم تحليلها بسهولة. يمكن أيضًا استخدام هذه الطريقة في إعلانات صفحة نماذج الويب لتبسيط عملية التعيين من نوع إلى آخر.
عند استخدام قيم البيانات في صفحة ASP.NET، يمكنك استخدام طريقة Eval لفئة DataBinder للسماح لـ .NET بالقيام بالمهمة الثقيلة. يقبل الأسلوب Eval كائن Container.DataItem الذي تم تجاوزه مسبقًا؛ ويقوم بحساب البيانات التفصيلية لكل حقل محدد في التعبير ويعرضها. بناء الجملة كما يلي:
DataBinder.Eval(Container.DataItem, "field name", "Optional formatting")
باستخدام بناء الجملة هذا، يمكنك إعادة كتابة المثال الأول باستخدام DataBinder.Eval، راجع قائمة C للتعرف على رمز C# الخاص به. تحتوي القائمة D على كود VB.NET المكافئ.
يعد DataBinder.Eval قويًا جدًا في دفع العمل إلى النظام، ولكن عليك أيضًا أن تدرك أن الوقت والموارد التي ينفقها النظام في تحديد موقع العناصر وتحديد أنواع الكائنات/البيانات عالية.
ربط بياناتالخيارات الغنية
يجعل وضع البيانات في صفحات ASP.NET أمرًا بسيطًا نسبيًا. هناك العديد من خيارات ربط البيانات المختلفة للاختيار من بينها، بما في ذلك: ربط البيانات بوحدة التحكم وتحديد كيفية عرضها، أو اختيار ربط البيانات بوحدة التحكم المعلنة في صفحة ASP.NET. في النهاية، يعود الأمر إلى تفضيلاتك، ولكن وجود الكثير من الخيارات هو أمر جيد في النهاية.
بدأ توني باتون حياته المهنية كمطور برامج وحصل على اعتماد في Java وVB وLotus وXML.