الجمعة، 29 نوفمبر 2019

أدوات السيرفر في برمجة صفحات الويب آي إس بي دوت نت ASP.NET Server Controls#

أدوات السيرفر في برمجة صفحات الويب آي إس بي دوت نت

  ASP.NET  Server Controls#






أدوات السيرفر في برمجة صفحات الويب آي إس بي دوت نت  ASP.NET  Server Controls#

أدوات السيرفر او عناصر التحكم السيرفر Server controls
هي أدوات رسومية جاهزة يتم تحويل كودها البرمجي بعد معالجتها على السيرفر إلى كود html فمن هذه العناصر مربع النص الذي يستخدم لإدخال البيانات فيه المرسلة للسيرفر وزر الضغط وازرارالاختيار وغيرها من الأدوات التي تستخدم في برمجة نوافذ الويندوز الفورم إلا أنه هنا يتم تحويل كودها إلى html بحيث متصفح النت على جهاز  الكمبيوتر للمستخدم.


عناصر التحكم عبارة عن لبنات بناء صغيرة لواجهة المستخدم الرسومية ، والتي تشمل مربعات النص والأزرار وخانات الاختيار ومربعات القوائم والعلامات والعديد من الأدوات الأخرى.  باستخدام هذه الأدوات ، يمكن للمستخدمين إدخال البيانات وتحديد الاختيارات والإشارة إلى تفضيلاتهم.

 تستخدم عناصر التحكم او أدوات السيرفر  أيضًا في الوظائف الهيكلية ، مثل التحقق من الصحة والوصول إلى البيانات والأمان وإنشاء الصفحات الرئيسية ومعالجة البيانات.

 يستخدم ASP.NET خمسة أنواع من عناصر تحكم الويب ، وهي:

 عناصر HTML
 عناصر خادم HTML
 عناصر  تحكم ASP.NET Server
 عناصر خادم ASP.NET Ajax
 ادوات المستخدم وأدوات  المخصصة

عناصر تحكم خادم ASP.NET هي عناصر التحكم الأساسية المستخدمة في ASP.NET.  يمكن تجميع عناصر التحكم هذه في الفئات التالية:

   validation control عناصر تحكم التحقق من الصحة - تُستخدم هذه للتحقق من صحة إدخال المستخدم وتعمل من خلال تشغيل برنامج نصي من جانب العميل.

Data source control عناصر تحكم مصدر البيانات - توفر عناصر التحكم هذه ربط البيانات بمصادر بيانات مختلفة.

data views control عناصر التحكم في عرض البيانات - هذه هي قوائم وجداول مختلفة ، والتي يمكنها ربط البيانات من مصادر البيانات للعرض.

 personalization  control عناصر التحكم في التخصيص - تُستخدم هذه لإضفاء طابع شخصي على الصفحة وفقًا لتفضيلات المستخدم ، بناءً على معلومات المستخدم.

 logon and security control  عناصر التحكم في تسجيل الدخول والأمان - توفر عناصر التحكم هذه مصادقة المستخدم.

 main page control الصفحات الرئيسية - توفر عناصر التحكم هذه تخطيطًا وواجهة متسقة في جميع أنحاء التطبيق.

navigation  control  عناصر التحكم في التنقل - تساعد عناصر التحكم هذه في التنقل.  على سبيل المثال ، القوائم ، عرض الشجرة ، إلخ.

 rich control  عناصر التحكم الغنية - عناصر التحكم هذه تنفذ ميزات خاصة.  على سبيل المثال ، التحكم AdRotator ، FileUpload ، والتقويم.

 بناء جملة استخدام عناصر تحكم الخادم هو:

  ID ="ControlID" runat="server" Property1=value1  [Property2=value2] />

بالإضافة إلى ذلك ، فيجوال استوديو  لديه ما يلي
 الميزات ، للمساعدة في إنتاج الكود خالية من الأخطاء:
 سحب وإسقاط عناصر التحكم في طريقة عرض التصميم
 ميزة التحسس الذكي التي تعرض الخصائص وتكمّلها تلقائيًا
 نافذة الخصائص لتعيين قيم الخاصية مباشرة

والخصائص  الأدوات السيرفر Properties of the Server Controls


يتم اشتقاق عناصر تحكم خادم ASP.NET مع جانب مرئي من فئة WebControl وترث جميع الخصائص والأحداث وطرق هذه الفئة.

 فئة WebControl نفسها وبعض عناصر تحكم الخادم الأخرى التي لم يتم تقديمها بصريًا مشتقة من فئة System.Web.UI.Control.  على سبيل المثال ، عنصر تحكم PlaceHolder أو عنصر تحكم XML.

 عناصر تحكم خادم ASP.Net ترث كافة الخصائص والأحداث والأساليب لفئة WebControl و System.Web.UI.Control.

 يعرض الجدول التالي الخصائص الموروثة الشائعة لجميع عناصر التحكم بالخادم:
الخاصيةالوصف
AccessKeyيؤدي الضغط على هذا المفتاح باستخدام مفتاح Alt إلى نقل التركيز إلى عنصر التحكم.
Attributesإنها مجموعة السمات التعسفية (للعرض فقط) التي لا تتوافق مع الخصائص الموجودة على عنصر التحكم.
BackColorلون الخلفية.
BindingContainerعنصر التحكم الذي يحتوي على ربط بيانات عنصر التحكم هذا.
BorderColorلون الحدود.
BorderStyleلوم النمط
BorderWidth حجم الإطار او الحدود Border width.
CausesValidationيشير إلى ما إذا كان يسبب التحقق من الصحة.
ChildControlCreatedيشير إلى ما إذا كان قد تم إنشاء عناصر التحكم التابعة لعنصر تحكم الخادم.
ClientID اسم المعرف للكود Control ID for HTML markup.
Contextكائن HttpContext المرتبط بعنصر تحكم الخادم.
Controlsمجموعة من جميع الضوابط الواردة داخل السيطرة.
ControlStyleنمط عنصر تحكم خادم الويب.
CssClassCSS class
DataItemContainerالحصول على مرجع إلى حاوية التسمية إذا كانت حاوية التسمية تنفذ IDataItemContainer
DataKeysContainer.الحصول على مرجع إلى حاوية التسمية إذا كانت حاوية التسمية تنفذ IDataKeysControl
DesignModeيشير إلى ما إذا كان يتم استخدام عنصر التحكم على سطح التصميم.
DisabledCssClassالحصول على أو تعيين فئة CSS لتطبيقها على عنصر HTML المقدم عند تعطيل عنصر التحكم.
Enabledيشير إلى ما إذا كان عنصر التحكم باللون الرمادي.
EnableThemingيشير إلى ما إذا كان ينطبق عليها عنصر التحكم.
EnableViewStateيشير إلى ما إذا كان يتم الحفاظ على حالة عرض عنصر التحكم.
Eventsالحصول على قائمة  معالج الأحداث لعنصر التحكم
Fontالخط
Forecolorلون الخط
HasAttributesيشير إلى ما إذا كان عنصر التحكم يحتوي على مجموعة سمات.
HasChildViewStateيشير إلى ما إذا كان عنصر التحكم الحالي بالخادم التابع يحتوي على أي إعدادات حالة عرض محفوظة.
Heightالارتفاع بالنسبة او بالبكسل Height in pixels or %.
IDمعرف الاداة Identifier for the control.
IsChildControlStateClearedيشير إلى ما إذا كانت عناصر التحكم الموجودة داخل عنصر التحكم هذا تحتوي على حالة تحكم.
IsEnabledالحصول على قيمة تشير إلى ما إذا كان عنصر التحكم ممكّنًا
IsTrackingViewStateيشير إلى ما إذا كان عنصر تحكم الخادم يقوم بحفظ التغييرات إلى حالة العرض الخاصة به.
IsViewStateEnabledيشير إلى ما إذا كانت حالة العرض ممكّنة لعنصر التحكم هذا.
LoadViewStateByIdيشير إلى ما إذا كان عنصر التحكم يشارك في تحميل حالة العرض الخاصة به بواسطة المعرف بدلاً من الفهرس.
Pageصفحة تحتوي على عنصر التحكم.
Parentاداة التحكم لأب Parent control.
RenderingCompatibilityيحدد إصدار ASP.NET الذي سيكون HTML المقدم متوافقًا معه.١
Siteالحاوية التي تستضيف التحكم الحالي عند تقديمه على سطح التصميم.
SkinIDالحصول على أو تعيين skinid لتطبيقه على السيطرة.
Styleالحصول على مجموعة من سمات النص التي سيتم تقديمها كسمة نمط على العلامة الخارجية لعنصر تحكم خادم الويب.
TabIndexالحصول على أو تعيين فهرس علامة التبويب لعنصر تحكم خادم الويب.
TagKeyالحصول على قيمة HtmlTextWriterTag التي تتوافق مع عنصر تحكم خادم الويب هذا.
TagNameالحصول على اسم علامة التحكم.
TemplateControlالقالب الذي يحتوي على عنصر التحكم هذا.
TemplateSourceDirectoryالحصول على الدليل الظاهري للصفحة أو عنصر التحكم الذي يحتوي على عنصر التحكم هذا.
ToolTipالحصول على النص المعروض أو تعيينه عندما يحوم مؤشر الماوس فوق عنصر تحكم خادم الويب.
UniqueIDمعرف فريد 
ViewStateالحصول على قاموس لمعلومات الحالة يحفظ ويستعيد حالة عرض عنصر تحكم الخادم عبر طلبات متعددة لنفس الصفحة.
ViewStateIgnoreCaseيشير إلى ما إذا كان كائن StateBag غير حساس لحالة الأحرف.
ViewStateModeالحصول على وضع حالة العرض لعنصر التحكم هذا أو تعيينه.
Visibleيشير إلى ما إذا كان عنصر تحكم خادم مرئيًا.
Widthالحصول على أو تحديد عرض عنصر تحكم خادم الويب.

دوال أدوات السيرفرMethods of the Server Controls

يوفر الجدول التالي طرق عناصر تحكم الخادم:
الدالةالوصف
AddAttributesToRenderيضيف سمات HTML والأنماط التي يجب تقديمها إلى HtmlTextWriterTag المحدد.
AddedControlيتم استدعاؤه بعد إضافة عنصر تحكم تابع إلى مجموعة عناصر التحكم الخاصة بكائن التحكم.
AddParsedSubObjectيخطر عنصر تحكم الخادم بأنه تم تحليل عنصر ، إما XML أو HTML ، وإضافة العنصر إلى مجموعة التحكم لعنصر تحكم الخادم.
ApplyStyleSheetSkinيطبق خصائص النمط المعرفة في ورقة أنماط الصفحة على عنصر التحكم.
ClearCachedClientID.البنية التحتية.  يعين القيمة ClientID المخزنة مؤقتاً إلى فارغة
ClearChildControlStateحذف معلومات حالة التحكم لعناصر التحكم التابعة لعنصر تحكم الخادم.
ClearChildStateحذف معلومات حالة العرض والتحكم لكل عناصر تحكم خادم التحكم التابع.
ClearChildViewStateحذف معلومات حالة العرض لكل عناصر التحكم التابعة لعنصر تحكم الخادم.
CreateChildControlsالمستخدمة في إنشاء عناصر تحكم الابن.
CreateControlCollectionإنشاء كائن ControlCollection جديد للاحتفاظ بعناصر التحكم التابعة
CreateControlStyleينشئ كائن النمط الذي يتم استخدامه لتنفيذ كل الخصائص المتعلقة بالنمط.
DataBindيربط مصدر البيانات بعنصر تحكم الخادم وجميع عناصر التحكم التابعة له.
DataBind(Boolean)يربط مصدر البيانات بعنصر تحكم الخادم وجميع عناصر التحكم التابعة له مع خيار رفع الحدث DataBinding.
DataBindChildrenيربط مصدر بيانات بعناصر التحكم التابعة لعنصر تحكم الخادم.
Disposeتمكن عنصر تحكم الخادم من إجراء التنظيف النهائي قبل إصداره من الذاكرة.
EnsureChildControlsلتحديد ما إذا كان عنصر تحكم الخادم يحتوي على عناصر تحكم تابعة.  إذا لم يحدث ذلك ، فإنه ينشئ عناصر تحكم تابعة.
EnsureIDينشئ معرف لعناصر التحكم التي ليس لها معرف.
Equals(Object)لتحديد ما إذا كان الكائن المحدد يساوي الكائن الحالي.
Finalizeللسماح لكائن ما بمحاولة تحرير الموارد وإجراء عمليات تنظيف أخرى قبل أن يتم استعادة الكائن بواسطة مجموعة البيانات المهملة.
FindControl(String)يبحث في حاوية التسمية الحالية عن عنصر تحكم خادم باستخدام معلمة المعرف المحدد.
FindControl(String, Int32)يبحث في حاوية التسمية الحالية عن عنصر تحكم خادم بمعرف محدد و عدد صحيح.
Focusيضبط تركيز الإدخال على عنصر تحكم.
GetDesignModeStateالحصول على بيانات وقت التصميم لعنصر تحكم.
GetTypeالحصول على نوع المثيل الحالي.
GetUniqueIDRelativeToتُرجع الجزء السابق من خاصية UniqueID لعنصر التحكم المحدد.
HasControls.لتحديد ما إذا كان عنصر تحكم الخادم يحتوي على أي عناصر تحكم تابعة
HasEventsيشير إلى ما إذا كانت الأحداث مسجلة لعنصر التحكم أو أي عناصر تحكم تابعة.
IsLiteralContentلتحديد ما إذا كان عنصر تحكم الخادم يحتفظ بالمحتوى الحرفي فقط
LoadControlStateيستعيد معلومات حالة التحكم.
LoadViewState.يستعيد معلومات حالة العرض
MapPathSecureاسترداد المسار الفعلي الذي يعينه المسار الظاهري ، سواء كان مطلقًا أو نسبيًا.
MemberwiseClone.يخلق نسخة ضحلة من الكائن الحالي
MergeStyleنسخ أي عناصر غير محددة من النمط المحدد إلى عنصر تحكم الويب ، ولكن لا تحل محل أي عناصر نمط موجودة من عنصر التحكم.
OnBubbleEventلتحديد ما إذا كان الحدث الخاص بعنصر تحكم الخادم قد انتهى من التسلسل الهرمي لعنصر تحكم خادم UI الخاص بالصفحة.
OnDataBinding.يثير الحدث ربط البيانات
OnInit.يثير الحدث الأولية
OnLoadيثير الحدث تحميل.
OnPreRender.يثير الحدث PreRender
OnUnloadيثير الحدث إلغاء التحميل.
OpenFileيحصل على دفق يستخدم لقراءة الملف.
RemovedControlيتم استدعاؤه بعد إزالة عنصر التحكم التابع من مجموعة عناصر التحكم الخاصة بكائن التحكم
Render.يقدم التحكم إلى كاتب HTML المحدد
RenderBeginTagيعرض علامة فتح HTML لعنصر التحكم للكاتب المحدد.
RenderChildrenإخراج محتويات خادم التحكم التابع لكائن HtmlTextWriter مقدم ، والذي يكتب المحتويات المراد تقديمها على العميل.
RenderContentsيعرض محتويات عنصر التحكم للكاتب المحدد.
RenderControl(HtmlTextWriter).إخراج محتوى التحكم في الخادم إلى كائن HtmlTextWriter مقدم وتخزين معلومات التتبع حول عنصر التحكم إذا تم تمكين التتبع
RenderEndTagيعرض علامة إغلاق HTML لعنصر التحكم في الكاتب المحدد.
ResolveAdapterالحصول على محول التحكم المسؤول عن تقديم عنصر التحكم المحدد.
SaveControlStateيحفظ أي تغييرات في حالة تحكم الخادم التي حدثت منذ الوقت الذي تم فيه نشر الصفحة مرة أخرى على الخادم.
SaveViewStateيحفظ أي حالة تم تعديلها بعد استدعاء الأسلوب TrackViewState.
SetDesignModeStateيضبط بيانات وقت التصميم لعنصر تحكم.
ToStringإرجاع سلسلة تمثل الكائن الحالي.
TrackViewStateيؤدي عنصر التحكم إلى تعقب التغييرات إلى حالة العرض الخاصة به بحيث يمكن تخزينها في خاصية حالة عرض الكائن.

مثال Example


دعنا ننظر إلى عنصر تحكم خادم معين - عنصر تحكم عرض شجرة.  عنصر تحكم عرض شجرة يأتي تحت عناصر التحكم في التنقل.  عناصر التحكم الأخرى في التنقل هي: التحكم في القائمة والتحكم في SiteMapPath.

 إضافة عنصر تحكم عرض شجرة على الصفحة.  حدد تحرير العقد ... من المهام.  قم بتحرير كل من العقد باستخدام محرر عقدة طريقة العرض Tree كما هو موضح:




إضافة عنصر تحكم تسمية والتحكم مربع النص على الصفحة وتسميتها 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;
            }
         }
      }
   }
}

تنفيذ الصفحة لرؤية النتائج .  سوف تكون قادرة على توسيع وطي العقد القائمة .



التسميات: