عناصر التحكم عبارة عن كتل وظيفية صغيرة في واجهة مستخدم رسومية تتضمن مربعات النص والأزرار وخانات الاختيار ومربعات القائمة والتسميات والعديد من الأدوات الأخرى. باستخدام هذه الأدوات، يمكن للمستخدمين إدخال البيانات وإجراء التحديدات والإشارة إلى تفضيلاتهم.
تُستخدم عناصر التحكم أيضًا في الأعمال الهيكلية مثل التحقق من الصحة والوصول إلى البيانات والأمن وإنشاء الصفحات الرئيسية ومعالجة البيانات.
يستخدم ASP.NET خمسة أنواع من عناصر تحكم الويب، وهي:
السيطرة على HTML
السيطرة على خادم HTML
عناصر تحكم خادم ASP.NET
التحكم في خادم ASP.NET Ajax
عناصر تحكم المستخدم وعناصر التحكم المخصصة
عناصر تحكم خادم ASP.NET هي عناصر التحكم الأساسية المستخدمة في ASP.NET. ويمكن تقسيم هذه الضوابط إلى الفئات التالية:
عناصر التحكم في التحقق من الصحة - تُستخدم للتحقق من صحة إدخال المستخدم والعمل عن طريق تشغيل البرامج النصية من جانب العميل.
التحكم في مصدر البيانات - يوفر إمكانات ربط البيانات لمصادر بيانات مختلفة.
التحكم في عرض البيانات - عنصر التحكم هذا عبارة عن مجموعة متنوعة من القوائم والجداول التي يمكنها عرض البيانات المرتبطة من مصدر بيانات.
عناصر التحكم في التخصيص - تخصيص الصفحات بناءً على معلومات المستخدم بناءً على تفضيلات المستخدم.
ضوابط تسجيل الدخول والأمان - يوفر مصادقة المستخدم.
الصفحة الرئيسية - توفر تخطيطًا وواجهة متسقة عبر التطبيق بأكمله.
عناصر التحكم في التنقل - مساعدة المستخدمين على التنقل. على سبيل المثال، القائمة، وعرض الشجرة، وما إلى ذلك.
ضوابط الوظائف الغنية - تنفيذ وظائف خاصة. على سبيل المثال: عناصر تحكم AdRotator وFileUpload والتقويم.
بناء الجملة الأساسي لاستخدام عناصر تحكم الخادم هو:
<asp:controlType ID ="ControlID" runat="server" Property1=value1 [Property2=value2] />
بالإضافة إلى ذلك، يحتوي Visual Studio على الميزات التالية للمساعدة في إنتاج تعليمات برمجية خالية من الأخطاء:
عناصر التحكم بالسحب والإفلات في طريقة عرض التصميم.
قدرات IntelliSense لميزات العرض والإكمال التلقائي.
نافذة الخصائص لتعيين قيم الخصائص مباشرة.
يتم اشتقاق عناصر تحكم خادم ASP.NET ذات الإمكانات المرئية من فئة WebControl وترث كافة الخصائص والأحداث والأساليب الخاصة بهذه الفئة.
يتم اشتقاق فئة WebControl نفسها وعناصر تحكم الخادم الأخرى التي ليس لديها إمكانات مرئية من فئة System.Web.UI.Control. على سبيل المثال، عنصر تحكم PlaceHolder أو عنصر تحكم XML.
ترث عناصر تحكم خادم ASP.Net كافة الخصائص والأحداث والأساليب الخاصة بفئتي WebControl وSystem.Web.UI.Control.
يعرض الجدول التالي الخصائص المشتركة لجميع عناصر تحكم الخادم:
ملكية | يصف |
---|---|
مفتاح الوصول | اضغط على هذا المفتاح ومفتاح Alt في الوقت نفسه لنقل التركيز إلى عنصر التحكم. |
صفات | إنها مجموعة من الخصائص العشوائية التي لا تتوافق مع خصائص التحكم (تُستخدم فقط لعرض العرض). |
لون الخلفية | لون الخلفية. |
BindingContainer | يحتوي على ضوابط مرتبطة بالبيانات. |
لون الحدود | لون الحدود. |
BorderStyle | نمط الحدود. |
عرض الحدود | عرض الحدود. |
الأسبابالتحقق من الصحة | يظهر عند حدوث التحقق. |
تم إنشاء التحكم في الطفل | يشير إلى ما إذا تم إنشاء عناصر التحكم التابعة لعنصر تحكم الخادم. |
معرف العميل | معرف التحكم لعلامة HTML. |
سياق | كائن HttpContext المرتبط بعنصر تحكم الخادم. |
الضوابط | مجموعة من كافة الضوابط داخل السيطرة. |
ControlStyle | أنماط التحكم في خادم الويب. |
فئة Css | فئات CSS. |
DataItemContainer | يوفر مرجعًا للاسم إذا قام بتطبيق IDataItemContainer. |
حاوية مفاتيح البيانات | يوفر مرجعًا للاسم إذا كان يقوم بتطبيق IDataKeysControl. |
وضع التصميم | يشير إلى ما إذا كان سيتم استخدام عنصر التحكم في واجهة التصميم. |
DisabledCssClass | الحصول على فئة CSS أو تعيينها لتطبيقها على عنصر HTML المعروض عند تعطيل عنصر التحكم. |
ممكّن | يشير إلى ما إذا كان عنصر التحكم معطلاً. |
تمكين الموضوع | الإشارة إلى ما إذا كان السمة تنطبق على عنصر التحكم. |
EnableViewState | الإشارة إلى ما إذا كان سيتم الحفاظ على حالة عرض عنصر التحكم. |
الأحداث | الحصول على قائمة بمعالجات الأحداث التي تمثل عنصر التحكم. |
الخط | إعدادات الخط. |
المقدمة | اللون الأمامي. |
لديه سمات | الإشارة إلى ما إذا كان عنصر التحكم يحتوي على مجموعات خصائص. |
HasChildViewState | الإشارة إلى ما إذا كانت عناصر التحكم التابعة لعنصر تحكم الخادم الحالي تحتوي على أي إعدادات لحالة العرض المحفوظة. |
ارتفاع | الارتفاع بالبكسل أو النسبة المئوية. |
بطاقة تعريف | معرف عنصر التحكم |
IsChildControlStateCleared | الإشارة إلى ما إذا كان عنصر التحكم الموجود ضمن عنصر التحكم هذا يتمتع بحالة تحكم. |
تم تمكينه | يحصل على قيمة تشير إلى ما إذا كان عنصر التحكم ممكنًا. |
IsTrackingViewState | يشير إلى ما إذا كان عنصر تحكم الخادم سيحفظ التغييرات في حالة العرض الخاصة به. |
IsViewStateEnabled | يشير إلى ما إذا كانت حالة العرض ممكّنة لعنصر التحكم هذا. |
تحميلViewStateById | الإشارة إلى ما إذا كان عنصر التحكم يشارك في تحميل حالة العرض الخاصة به بواسطة المعرف بدلاً من الفهرس. |
صفحة | الصفحة التي تحتوي على عنصر التحكم. |
الوالد | ميزات الرقابة الأبوية. |
توافق العرض | يحدد إصدار ASP.NET الذي سيكون HTML المقدم متوافقًا معه. |
موقع | الحامل الذي يحمل عنصر التحكم الحالي عند عرض واجهة التصميم. |
معرف الجلد | الحصول على أو ضبط الجلد المطبق على عنصر التحكم. |
أسلوب | الحصول على مجموعة من خصائص النص التي سيتم عرضها كخصائص نمط على الملصق الخارجي لعنصر تحكم خادم الويب. |
مؤشر الجدولة | الحصول على تسمية الفهرس لعنصر تحكم خادم الويب أو تعيينها. |
مفتاح العلامة | يحصل على قيمة HtmlTextWriterTag المطابقة لعنصر تحكم خادم الويب هذا. |
اسم العلامة | يحصل على اسم تسمية التحكم. |
التحكم في القالب | يحتوي على القالب الخاص بعنصر التحكم هذا. |
دليل مصدر القالب | الحصول على الدليل الظاهري للصفحة أو عنصر التحكم الموجود ضمن عنصر التحكم هذا. |
تلميح الأداة | الحصول على النص المعروض أو تعيينه عندما يكون مؤشر الماوس فوق عنصر تحكم خادم الويب. |
معرف فريد | معرف فريد. |
حالة العرض | الحصول على قاموس لمعلومات الحالة قادر على حفظ واستعادة حالة عرض التحكم في الخادم عبر طلبات متعددة لنفس الصفحة. |
ViewStateIgnoreCase | الإشارة إلى ما إذا كان كائن StateBag حساسًا لحالة الأحرف. |
طريقة عرض الحالة | الحصول على حالة عرض عنصر التحكم هذا أو تعيينها. |
مرئي | يشير إلى ما إذا كان عنصر تحكم الخادم مرئيًا. |
عرض | الحصول على أو تعيين عرض عنصر تحكم خادم الويب. |
يتم عرض طرق التحكم بالخادم في الجدول التالي:
طريقة | يصف |
---|---|
AddAttributesToRender | قم بإضافة سمات HTML والأنماط اللازمة لعرض HtmlTextWriterTag المحدد. |
التحكم المضاف | يتم استدعاؤه بعد إضافة عنصر تحكم فرعي إلى مجموعة عناصر التحكم الخاصة بكائن التحكم. |
AddParsedSubObject | يقوم بإعلام عنصر تحكم الخادم بأنه قد تم تحليل عنصر، XML أو HTML، ويضيف العنصر إلى مجموعة التحكم الخاصة بعنصر تحكم الخادم. |
تطبيقStyleSheetSkin | يطبق خصائص النمط المحددة في ورقة أنماط الصفحة على عناصر التحكم. |
ClearCachedClientID | بنية تحتية. قم بتعيين قيمة ClientID المخزنة مؤقتًا إلى فارغة. |
ClearChildControlState | إزالة معلومات حالة التحكم لعناصر التحكم التابعة لعنصر تحكم الخادم. |
ClearChildState | إزالة معلومات حالة العرض والتحكم لجميع عناصر التحكم التابعة للتحكم في الخادم. |
ClearChildViewState | يزيل معلومات حالة العرض لجميع عناصر التحكم التابعة لعنصر تحكم الخادم. |
إنشاء عناصر تحكم الطفل | تستخدم لإنشاء عناصر تحكم الطفل. |
إنشاء مجموعة التحكم | قم بإنشاء مجموعة تحكم جديدة للاحتفاظ بعناصر التحكم التابعة. |
CreateControlStyle | ينشئ كائن نمط ينفذ كافة الخصائص المتعلقة بالنمط. |
DataBind | ربط مصدر البيانات بعنصر تحكم الخادم وكافة عناصر التحكم الفرعية الخاصة به. |
ربط البيانات (منطقي) | ربط مصدر البيانات والخيارات التي ترفع حدث DataBinding إلى عنصر تحكم الخادم وكافة عناصر التحكم الفرعية الخاصة به. |
DataBindChildren | ربط مصدر البيانات بعنصر تحكم تابع لعنصر تحكم الخادم. |
تخلص | تمكين عنصر تحكم الخادم من إجراء عمليات التنظيف النهائية قبل تحريره من الذاكرة. |
ضمان ضوابط الطفل | تحديد ما إذا كان عنصر تحكم الخادم يحتوي على عناصر تحكم فرعية. إذا لم يكن الأمر كذلك، قم بإنشاء عنصر تحكم تابع. |
معرف الضمان | قم بإنشاء معرف لعنصر تحكم لا يحتوي على معرف. |
يساوي (كائن) | تحديد ما إذا كان الكائن المحدد يساوي الكائن الحالي. |
وضع اللمسات الأخيرة | يسمح للكائن بمحاولة تحرير الموارد وإجراء عمليات تنظيف أخرى قبل استعادة الكائن بواسطة سلة المحذوفات. |
فيندكونترول (سلسلة) | يبحث في الحاوية المسماة الحالية عن عناصر تحكم الخادم باستخدام معلمة المعرف المحددة. |
فيندكونترول (سلسلة، Int32) | يبحث في الحاوية المسماة الحالية عن عناصر تحكم الخادم باستخدام معلمة المعرف المحددة والعدد الصحيح. |
ركز | ضبط تركيز الإدخال لعنصر التحكم. |
GetDesignModeState | الحصول على بيانات وقت التصميم لعنصر التحكم. |
GetType | احصل على نوع المثيل الحالي. |
GetUniqueIDRelativeTo | إرجاع الجزء البادئ لخاصية المعرف الفريد لعنصر التحكم المحدد. |
HasControls | تحديد ما إذا كان عنصر تحكم الخادم يحتوي على عناصر تحكم فرعية. |
HasEvents | الإشارة إلى ما إذا كان الحدث قد تم تسجيله بواسطة عنصر التحكم أو عناصر التحكم التابعة الأخرى. |
IsLiteralContent | يحدد ما إذا كان عنصر تحكم الخادم يحتوي على محتوى نصي فقط. |
LoadControlState | استعادة معلومات حالة التحكم. |
LoadViewState | استعادة معلومات حالة العرض. |
MapPathSecure | يسترد المسار الفعلي الذي تم تعيين المسار الظاهري المطلق أو النسبي إليه. |
MemberwiseClone | ينشئ نسخة سطحية من الكائن الحالي. |
MergeStyle | نسخ أي عناصر غير فارغة لعنصر تحكم الويب بالنمط المحدد، ولكن لا يقوم بالكتابة فوق أي عناصر نمط موجودة لعنصر التحكم. |
OnBubbleEvent | يحدد ما إذا كانت أحداث عنصر تحكم الخادم تمر عبر التسلسل الهرمي للتحكم في خادم واجهة المستخدم الخاص بالصفحة. |
OnDataBinding | رفع حدث ربط البيانات. |
OnInit | يرفع الحدث Init. |
عند التحميل | يثير حدث التحميل. |
OnPreRender | يرفع حدث PreRender. |
عند التفريغ | رفع حدث إلغاء التثبيت. |
ملف مفتوح | احصل على الدفق المستخدم لقراءة الملف. |
تمت إزالة التحكم | يتم استدعاؤه بعد إزالة عنصر التحكم التابع من مجموعة عناصر التحكم الخاصة بكائن التحكم. |
يجعل | يعرض عنصر التحكم لمؤلف HTML المحدد. |
RenderBeginTag | يعرض علامة فتح HTML لعنصر التحكم للمؤلف المحدد. |
RenderChildren | يقوم بإخراج محتوى العناصر الفرعية لعنصر تحكم الخادم إلى كائن HtmlTextWriter المتوفر لكتابة المحتوى الذي يتم عرضه على العميل. |
محتويات العرض | يعرض محتوى عنصر التحكم للمؤلف المحدد. |
التحكم في الرندر (كاتب نص HTML) | يقوم بإخراج محتوى تحكم الخادم إلى كائن HtmlTextWriter المتوفر ويحفظ معلومات التتبع حول عنصر التحكم إذا تم تمكين التعقب. |
RenderEndTag | يعرض علامة إغلاق HTML لعنصر التحكم للمؤلف المحدد. |
حل المحول | الحصول على محول التحكم المسؤول عن تقديم عنصر التحكم المحدد. |
SaveControlState | يحفظ تغييرات الحالة على عناصر تحكم الخادم التي حدثت منذ إعادة نشر الصفحة إلى الخادم. |
SaveViewState | يحفظ أي حالة تم تعديلها بعد استدعاء الأسلوب TrackViewState. |
SetDesignModeState | قم بتعيين بيانات وقت التصميم لعنصر التحكم. |
ToString | تقوم بإرجاع سلسلة تمثل الكائن الحالي. |
TrackViewState | يؤدي إلى قيام عنصر التحكم بتتبع التغييرات في حالة العرض الخاصة به بحيث يمكن تخزينها في خاصية ViewState الخاصة بالكائن. |
دعونا نلقي نظرة على عنصر تحكم معين في الخادم - التحكم في العرض الشجري. عناصر التحكم في العرض الشجري هي عناصر تحكم في التنقل. عناصر التحكم الأخرى في التنقل هي: التحكم في القائمة والتحكم في SiteMapPath.
إضافة عنصر تحكم عرض الشجرة إلى الصفحة. حدد تحرير العقد... من المهمة وقم بتحرير كل عقدة باستخدام محرر عقدة العرض الشجري كما يلي:
بعد إنشاء العقدة بنجاح، ستظهر الشاشة التالية في عرض التصميم:
تتيح لك مهمة AutoFormat... تحديد تنسيق العرض الشجري كما يلي:
أضف عنصر تحكم التسمية وعنصر تحكم مربع النص على الصفحة وقم بتسميتهما على التوالي lblmessage وtxtmessage.
اكتب بضعة أسطر من التعليمات البرمجية للتأكد من أنه عند تحديد عقدة معينة، يعرض عنصر تحكم التسمية نص العقدة ويعرض مربع النص جميع العقد الفرعية الموجودة أسفلها (إن وجدت). يجب أن يبدو رمز ملف الخلفية كما يلي:
using System;using System.Collections;using System.Configuration;using System.Data;using System.Linq;using System.Web;using System.Web.Security;using System.Web.UI;using System.Web.UI.HtmlControls;using System.Web.UI.WebControls;using System.Web.UI.WebControls.WebParts;using System.Xml.Linq;namespace eventdemo { public partial class treeviewdemo : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { txtmessage.Text = " "; } protected void TreeView1_SelectedNodeChanged(object sender, EventArgs e) { txtmessage.Text = " "; lblmessage.Text = "Selected node changed to: " + TreeView1.SelectedNode.Text; TreeNodeCollection childnodes = TreeView1.SelectedNode.ChildNodes; if(childnodes != null) { txtmessage.Text = " "; foreach (TreeNode t in childnodes) { txtmessage.Text += t.Value; } } } }}
قم بتنفيذ الصفحة لترى التأثير وستتمكن من توسيع العقد وطيها.