الثلاثاء، 26 نوفمبر 2019

التعامل مع الأحداث في برمجة صفحات الويب آي إس بي ASP.NET Event Handling#

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

ASP.NET Event Handling#

التعامل مع الأحداث في برمجة صفحات الويب آي إس بي ASP.NET Event Handling#



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

 الأحداث في ASP.NET التي أثيرت على جهاز العميل ، وتم معالجتها على جهاز الخادم.  على سبيل المثال ، يقوم المستخدم بالنقر فوق زر معروض في المستعرض.  يتم رفع حدث النقر.  يعالج المستعرض هذا الحدث من جانب العميل عن طريق نشره على الخادم.

 يحتوي الخادم على روتين فرعي يصف ما يجب فعله عند رفع الحدث ؛  يطلق عليه معالج الحدث.  لذلك ، عند إرسال رسالة الحدث إلى الخادم ، تتحقق مما إذا كان حدث Click له معالج حدث مرتبط.  إذا كانت موجودة ، فسيتم تنفيذ معالج الأحداث.

 يحتوي الخادم على روتين فرعي يصف ما يجب فعله عند رفع الحدث ؛  يطلق عليه معالج الحدث.  لذلك ، عند إرسال رسالة الحدث إلى الخادم ، تتحقق مما إذا كان حدث Click له معالج حدث مرتبط.  إذا كانت موجودة ، فسيتم تنفيذ معالج الأحداث.

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

 الصيغة العامة للحدث The general syntax of an event is:
private void EventName (object sender, EventArgs e);

Application and Session Events

أهم أحداث التطبيق هي:


 Application_Start - يتم رفعه عند بدء تشغيل التطبيق / موقع الويب.


 Application_End - يتم رفعه عند إيقاف التطبيق / موقع الويب.


 وبالمثل ، فإن أحداث الجلسة الأكثر استخدامًا هي:


 Session_Start - يتم رفعه عندما يطلب المستخدم لأول مرة صفحة من التطبيق.


 Session_End - يتم رفعها عند انتهاء الجلسة.

احداث الادوات والصفحة Page and Control Events


Common page and control events are:
ربط البيانات databind - يتم رفعه عندما يرتبط عنصر التحكم بمصدر البيانات.

 التخلص - يتم رفعه عند تحرير الصفحة أو عنصر التحكم.

 خطأerrot  - إنه حدث صفحة ، يحدث عند طرح استثناء غير معالج.

 الأولية priority - يتم رفعها عند تهيئة الصفحة أو عنصر التحكم.

 تحميلonload - يتم رفعه عند تحميل الصفحة أو عنصر تحكم.

 PreRender - يتم رفعه عند تقديم الصفحة أو عنصر التحكم.

 إلغاء التحميلunload - يتم رفعها عند إلغاء تحميل الصفحة أو عنصر التحكم من الذاكرة.

 استخدام الأدوات Event Handling Using Controls

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

 بشكل افتراضي ، يقوم Visual Studio بإنشاء معالج أحداث من خلال تضمين جملة Handles في الإجراء Sub.  هذه الجملة أسماء عنصر التحكم والحدث الذي يعالج الإجراء.

اداة التحكم الزر The ASP tag for a button control:
 ID="btnCancel" runat="server" Text="Cancel" />
حدث الضغط بزر الماوس The event handler for the Click event:
Protected Sub btnCancel_Click(ByVal sender As Object, ByVal e As System.EventArgs) 

   Handles btnCancel.Click
   
End Sub

يمكن أيضًا ترميز الحدث دون وجود مقابض.  بعد ذلك ، يجب تسمية المعالج وفقًا لسمة الحدث المناسبة لعنصر التحكم.
وسم اداة زر The ASP tag for a button control:
 ID="btnCancel" runat="server" Text="Cancel" Onclick="btnCancel_Click" />
 حدث الضغط على زر The event handler for the Click event:
Protected Sub btnCancel_Click(ByVal sender As Object, ByVal e As System.EventArgs)

End Sub
الأحداث الشائعة The common control events are:

EventAttributeControls
ClickOnClickButton, image button, link button, image map
CommandOnCommandButton, image button, link button
TextChangedOnTextChangedText box
SelectedIndexChangedOnSelectedIndexChangedDrop-down list, list box, radio button list, check box list.
CheckedChangedOnCheckedChangedCheck box, radio button
تسبب بعض الأحداث في إعادة نشر النموذج إلى الخادم فورًا ، وتسمى هذه الأحداث أحداث إعادة النشر.  على سبيل المثال ، حدث النقر مثل ، Button.Click.

 لا يتم نشر بعض الأحداث مرة أخرى إلى الخادم على الفور ، وتسمى هذه الأحداث غير القابلة لإعادة النشر.

 على سبيل المثال ، أحداث التغيير أو أحداث التحديد مثل TextBox.TextChanged أو CheckBox.CheckedChanged.  يمكن إجراء أحداث nonpostback للنشر مرة أخرى على الفور عن طريق تعيين الخاصية AutoPostBack إلى true.

 الأحداث الافتراضية
 الحدث الافتراضي لكائن الصفحة هو حدث التحميل.  وبالمثل ، فإن كل عنصر تحكم له حدث افتراضي.  على سبيل المثال ، الحدث الافتراضي لعنصر تحكم الزر هو حدث النقر.

 يمكن إنشاء معالج الأحداث الافتراضي في Visual Studio ، فقط بالنقر المزدوج فوق عنصر التحكم في طريقة العرض "تصميم".  يعرض الجدول التالي بعض الأحداث الافتراضية لعناصر التحكم الشائعة:

الأداة الحدق Event
AdRotator إدارة الاعلاناتAdCreated
BulletedList قائمة غير مرقمة Click
Button الزرClick
Calender التقويمSelectionChanged
CheckBox مربع الاختيار CheckedChanged
CheckBoxList قائمة اختيار متعددSelectedIndexChanged
DataGrid خاصة بقواعد البياناتSelectedIndexChanged
DataList قائمة البياناتSelectedIndexChanged
DropDownList قائمة منسدلةSelectedIndexChanged
HyperLink وصلة وشعبية رابط ويبClick
ImageButton زر من نوع صورة Click
ImageMap Click
LinkButton زر من نوع وصلةClick
ListBox قائمة مربعات اختيارSelectedIndexChanged
Menu قائمة MenuItemClick
RadioButton زر اختيار واحدة فقطCheckedChanged
RadioButtonList قائمة اختيار واحد فقطSelectedIndexChanged

مثال

 يتضمن هذا المثال صفحة بسيطة تحتوي على عنصر تحكم تسمية وعنصر تحكم زر.  إذا حدثت أحداث الصفحة مثل Page_Load أو Page_Init أو Page_PreRender وما إلى ذلك ، فسوف ترسل رسالة يتم عرضها بواسطة عنصر تحكم التسمية.  عند النقر فوق الزر ، يتم رفع الحدث Button_Click ويرسل أيضًا رسالة ليتم عرضها على الملصق.


 قم بإنشاء موقع ويب جديد واسحب عنصر تحكم تسمية والتحكم في زر عليه من مربع أداة التحكم.  باستخدام نافذة الخصائص ، قم بتعيين معرفات عناصر التحكم على أنها .lblmessage.  و .btnclick.  على التوالي.  قم بتعيين خاصية Text لعنصر التحكم Button على أنها "Click".


 ملف العلامات (.aspx):



<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" 
   Inherits="eventdemo._Default" %>



 xmlns="http://www.w3.org/1999/xhtml" >

    runat="server">
      </span><span class="pln" style="color: rgb(0, 0, 0);">Untitled Page</span><span class="tag" style="color: rgb(0, 0, 136);">
   
   
   
      
id="form1" runat="server">
ID="lblmessage" runat="server" > /> /> /> ID="btnclick" runat="server" Text="Click" onclick="btnclick_Click" />

انقر نقرًا مزدوجًا فوق طريقة عرض التصميم للانتقال إلى الرمز الموجود خلف الملف.  يتم إنشاء الحدث Page_Load تلقائيًا بدون أي كود فيه.  اكتب أسطر التعليمات البرمجية التوضيحية التالية:
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 _Default : System.Web.UI.Page {
   
      protected void Page_Load(object sender, EventArgs e) {
         lblmessage.Text += "Page load event handled. 
";
         
         if (Page.IsPostBack) {
            lblmessage.Text += "Page post back event handled.
";
         }
      }
      
      protected void Page_Init(object sender, EventArgs e) {
         lblmessage.Text += "Page initialization event handled.
";
      }
      
      protected void Page_PreRender(object sender, EventArgs e) {
         lblmessage.Text += "Page prerender event handled. 
";
      }
      
      protected void btnclick_Click(object sender, EventArgs e) {
         lblmessage.Text += "Button click event handled. 
";
      }
   }
}

تنفيذ الصفحة.  تعرض التسمية تحميل الصفحة وتهيئة الصفحة والأحداث السابقة لتقديم الصفحة.  انقر فوق الزر لرؤية التأثير:









التسميات: