مشاوره رایگان
دریافت لینک های دانلود دریافت پستی درب منزل مبلغ کل: تومان
جهت دریافت کد تخفیف به کانال تلگرام مراجعه و یا با پشتیبان آنلاین هماهنگ نمایید

جلسه پنجم آموزش ASP.NET : هندل کردن رویدادها در ASP.NET


هندل کردن رویدادها در ASP.NET

یک رویداد (event) می تواند به صورت یک action یا رخدادی همانند کلیک موس ، فشردن یک کلید ، حرکت اشاره گر موس و یا هر نوتیفیکشین تولید شده توسط سیستم باشد. یک فرآیند از طریق رویدادها ارتباط برقرار می کند. برای مثال ، وقفه ها ، رویدادهای تولید شده توسط سیستم می باشند. هنگامی که یک رویداد اتفاق می افتد ، برنامه کاربردی باید قادر به پاسخ دادن به آن یا مدیریت آن باشد.

رویدادها در ASP.NET در سمت کلاینت رخ می دهند و در سمت ماشین سرور هندل می شوند. برای مثال ، یک کاربر روی یک کلید نمایش داده شده در مرورگر کلیک می کند. در این حالت ، یک رویداد کلیک رخ می دهد. مرورگر رویداد رخ داده در سمت کلاینت را به سرور از طریق متد post ارسال می کند.

سرور یک subroutine دارد که آن چه را که در هنگام وقوع یک رویداد انجام می شود را تشریح می کند. این subroutine تحت عنوان هندلر رویداد (event-handler) نامیده می شود. بنابراین ، هنگامی که پیام رویداد به سرور انتقال داده می شود ، سرور بررسی می کند که آیا رویداد کلیک ، یک هندلر رویداد مرتبط دارد یا خیر. اگر هندلر رویداد وجود داشته باشد ، آن هندلر اجرا می شود.

آرگومان های رویداد

هندلرهای رویداد ASP.NET عموماً دو پارامتر را می گیرند و مقادیر void را برمی گردانند. پارامتر اول ، نشان دهنده شئی است که رویداد را ایجاد می کند و پارامتر دوم ، آرگومان رویداد می باشد.

Syntax کلی از یک رویداد به این صورت می باشد:

private void EventName (object sender, EventArgs e);

رویدادهای برنامه کاربردی و Session

مهم ترین رویدادهای برنامه کاربردی عبارتند از:

  • Application_Start – این رویداد زمانی رخ می دهد که یک برنامه کاربردی/ وب سایت شروع به کار نماید.
  • Appication_End – این رویداد زمانی رخ می دهد که یک برنامه کاربردی/ وب سایت متوقف شود.

به طور مشابه ، پرکاربردترین رویدادهای Session عبارتند از:

  • Session_Start – این رویداد زمانی رخ می دهد که کاربر ابتدا یک صفحه را از برنامه کاربردی درخواست می کند.
  • Session_End - این رویداد زمانی رخ می دهد که session (جلسه) به پایان برسد.

رویدادهای صفحه و کنترل

رویدادهای متداول صفحه و کنترل عبارتند از:

  • DataBinding – هنگامی که یک کنترل به یک منبع داده متصل می شود ، مطرح می شود.
  • Disposed – هنگامی که صفحه یا کنترلی منتشر می شود ، مطرح می شود.
  • Error – این یک رویداد صفحه است و هنگامی رخ می دهد که یک مورد استثناء غیرقابل هندل بروز کند.
  • Init – هنگامی که صفحه یا کنترلی مقداردهی اولیه می شود ، مطرح می شود.
  • Load – هنگامی که صفحه یا کنترلی لود می شود ، مطرح می شود.
  • PreRender – هنگامی که صفحه یا کنترلی رندر شده باشد ، مطرح می شود.
  • Unload – هنگامی که صفحه یا کنترلی از حافظه تخلیه شود ، مطرح می شود.

هندل کردن رویداد با استفاده از کنترل ها

تمام کنترل های ASP.NET به صورت کلاسهایی پیاده سازی شده اند ، و رویدادهایی دارند که وقتی کاربر یک اقدام مشخصی را بر روی آنها انجام می دهد ، راه اندازی می شوند. برای مثال ، هنگامی که کاربر روی یک کلید کلیک می کند ، رویداد ‘Click’ تولید می شود. برای هندل کردن رویدادها ، صفت های و هندلرهای رویداد داخلی وجود دارند. هندلر رویداد ، برای پاسخ دادن به یک رویداد کدنویسی شده است و اقدام متناسبی در آن صورت می پذیرد.

به طور پیش فرض ، Visual Studio یک هندلر رویداد با ایجاد یک Handles clause در Sub procedure تولید می کند. این clause ، کنترل و رویدادی را که procedure هندل می کند ، نامگذاری می کند.

تگ ASP برای یک کنترل کلید به صورت زیر می باشد:

<asp:Button ID="btnCancel" runat="server" Text="Cancel" />

هندلر رویداد برای رویداد Click به صورت زیر می باشد :

Protected Sub btnCancel_Click(ByVal sender As Object, ByVal e As System.EventArgs) 

   Handles btnCancel.Click
   
End Sub

یک رویداد هم چنین ، می تواند بدون Handles clause کدنویسی شود. در این صورت ، هندلر باید مطابق با صفت رویداد مناسب ، مربوط به کنترل نامگذاری شود:

تگ ASP برای کنترل کلید به این صورت است:

<asp:Button ID="btnCancel" runat="server" Text="Cancel" Onclick="btnCancel_Click" />

هندلر رویداد برای رویداد Click  به این صورت است:

Protected Sub btnCancel_Click(ByVal sender As Object, ByVal e As System.EventArgs)

End Sub

رویدادهای کنترل متداول به شرح جدول ذیل می باشند:

Controls

Attribute

Event

Button, image button, link button, image map

OnClick

Click

Button, image button, link button

OnCommand

Command

Text box

OnTextChanged

TextChanged

Drop-down list, list box, radio button list, check box list.

OnSelectedIndexChanged

SelectedIndexChanged

Check box, radio button

OnCheckedChanged

CheckedChanged

 

برخی از رویدادها باعث می شوند که بلافاصله پس از ارسال فرم به سرور ، رویدادهای callback فراخوانی شوند. مانند ، رویدادهای click مثل Button.Click .

برخی از رویدادها بلافاصله به سرور ارسال نمی شوند که رویدادهای non-postback نامیده می شوند.

برای مثال ، رویدادهای change یا رویدادهای  selection همانند TextBox.TextChanged یا CheckBox.CheckedChanged . رویدادهای nonpostback را می توان بلافاصله برای ارسال به سرور  با انجام تنظیمات خصیصه AutoPostBack به true ، ایجاد نمود.

 

رویدادهای پیش فرض

رویداد پیش فرض برای شیء Page ، رویداد Load می باشد. به طور مشابه ، هر کنترل ، یک رویداد پیش فرض دارد. برای مثال ، رویداد پیش فرض برای کنترل کلید ، رویداد Click می باشد.

هندلر رویداد پیش فرض می تواند در Visual Studio ایجاد شود ، تنها از طریق کلیک کردن بر control در بخش design view می توان این کار را انجام داد. جدول زیر ، برخی از رویدادهای پیش فرض برای کنترل های متداول را نشان می دهد:

Default Event

Control

AdCreated

AdRotator

Click

BulletedList

Click

Button

SelectionChanged

Calender

CheckedChanged

CheckBox

SelectedIndexChanged

CheckBoxList

SelectedIndexChanged

DataGrid

SelectedIndexChanged

DataList

SelectedIndexChanged

DropDownList

Click

HyperLink

Click

ImageButton

Click

ImageMap

Click

LinkButton

SelectedIndexChanged

ListBox

MenuItemClick

Menu

CheckedChanged

RadioButton

SelectedIndexChanged

RadioButtonList

 

مثال

این مثال شامل یک صفحه ساده با یک کنترل label و یک کنترل button در آن می باشد. از آن جایی که  رویدادهای صفحه مانند Page_Load ، Page_Init ، Page_PreRender و غیره ، اتفاق می افتند ، یک پیام ارسال می شود که توسط کنترل label نمایش داده می شود. هنگامی که کلید ، کلیک می شود ، رویداد Button_Click مطرح می شود و هم چنین یک پیام در برچسب نمایش داده می شود.

یک وب سایت جدید ایجاد کرده و از جعبه ابزار control ، کنترل label و یک کنترل button را در آن درگ می کنیم. با استفاده از پنجره properties ، شناسه های کنترل (IDs) را به ترتیب با عنوان .lblmessage. و .btnclick. تنظیم می کنیم. خصیصه Text از کنترل button را به ‘Click’ تنظیم می کنیم.

فایل نشانه گذاری (.aspx) به صورت زیر می باشد:

 

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

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

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

   <head runat="server">
      <title>Untitled Page</title>
   </head>
   
   <body>
      <form id="form1" runat="server">
         <div>
            <asp:Label ID="lblmessage" runat="server" >
            
            </asp:Label>
            
            <br />
            <br />
            <br />
            
            <asp:Button ID="btnclick" runat="server" Text="Click" onclick="btnclick_Click" />
         </div>
      </form>
   </body>
   
</html>

برای انتقال به کد پشت صحنه فایل ، روی design view دابل کلیک می کنیم. رویداد 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. <br />";
         
         if (Page.IsPostBack) {
            lblmessage.Text += "Page post back event handled.<br/>";
         }
      }
      
      protected void Page_Init(object sender, EventArgs e) {
         lblmessage.Text += "Page initialization event handled.<br/>";
      }
      
      protected void Page_PreRender(object sender, EventArgs e) {
         lblmessage.Text += "Page prerender event handled. <br/>";
      }
      
      protected void btnclick_Click(object sender, EventArgs e) {
         lblmessage.Text += "Button click event handled. <br/>";
      }
   }
}

صفحه را اجرا می کنیم. صفحه ، برچسب پیام های page load ، page initialization را نشان می دهد و رویدادها را پیش رندر می کند. کلید را کلیک می کنیم تا تأثیر آن را ببینیم:

 

فصلِ: 5 , تعداد قسمت ها: 176 , سطح: صفر تا صد

این فصل در یک نگاه:

در این فصل پس از بررسی سیستم مسیریابی و طراحی صفحه نمایش ویدیو ها، به سراغ پنل کاربری خواهیم رفت و مباحث Model Binding و…

توجه: این دوره آموزشی به صورت پیوسته بر اساس آخرین نسخه ی ASP.NET Core بروزرسانی خواهد شد.   آموزش صفر تا صد طراحی سایت اشتراک ویدیو مشابه آپارات با استفاده از  ASP.NET CORE  MVC 3.0 و V…
فصلِ: 8 , تعداد قسمت ها: 357 , سطح: صفر تا صد

این فصل در یک نگاه:

توضیحات کلی مجموعه: در این مجموعه قصد داریم تا فروشگاه اینترنتی دیجی کالا رو با Asp.Net Core3 پیاده سازی کنیم. ابتدا طراحی قالب دیجی کالا رو به صورت کامل انجام خواهیم داد. در مرحله میریم …
فصلِ: 5 , تعداد قسمت ها: 135 , سطح: صفر تا صد

این فصل در یک نگاه:

توضیحات کلی مجموعه: در این مجموعه آموزشی، با استفاده از جدیدترین تکنولوژی ها و ابزار های مایکروسافت (دات نت)، به یک پروژه جذاب مدیریت آگهی مشابه دیوار می پردازیم. این آموزش در دو بخش کلی و…
فصلِ: 7 , تعداد قسمت ها: 153 , سطح: صفر تا صد
موضوعات: آموزش ASP.NET

این فصل در یک نگاه:

در این دوره به آموزش صفر تا صد جدیدترین نسخه ASP یعنی CORE جدیدترین ورژن خواهیم پرداخت.این آموزش از سطح مقدماتی تا فوق …

دوره آموزش کامل طراحی وب به همراه پروژه ساخت سیستم مدیریت کتابخانه  این دوره  با کور 1 آغاز می شود و در ادامه پروژه به کور 2 تبدیل می شودو پروژه نهایی (سیستم مدیریت کتابخانه) با Asp.net کور…
فصلِ: 1 , تعداد قسمت ها: 5 , سطح: متوسط

این فصل در یک نگاه:

ساخت محیط کاربریآموزش نحوه ی ارسال ایمیل در Asp.net MVCآموزش تنظیمات Gmail برای استفادهاستفاده از Yahooاستفاده از سرویس …

به نام خدا... در خدمتتون هستم با آموزش ارسال ایمیل در Asp.net MVC... ارسال ایمیل یکی از اجزای اصلی ییک سایت به شمار می رود و واقعا سایتی که برای اجزای مختلفش همانند ثبت کاربر جدید و یا ارسال…
فصلِ: 2 , تعداد قسمت ها: 62 , سطح: صفر تا صد

این فصل در یک نگاه:

فصل دوم در یک نگاه:فصل دوم در یک نگاه:…

در این پکیج به مبحث طراحی وب ، در قالب ساخت یک سایت فروشگاهی 5040 به آدرس http://5040.ir می پردازیم که به جرات مشهورترین و یکی از برترین فروشگاه های مجازی در کشور است. در این مجموعه قصد داری…
فصلِ: 4 , تعداد قسمت ها: 78 , سطح: متوسط

این فصل در یک نگاه:

در این دوره آموزشی، وبسایت ورزش3 را با استفاده از ASP.NET Core پیاده سازی می کنیم و همچنین اپ اندروید آن را هم با Xamarin متصل به سرور سایت طراحی و در نهایت نحوه انتشار آن در مارکت هایی مثل …
فصلِ: 1 , تعداد قسمت ها: 14 , سطح: متوسط

این فصل در یک نگاه:

کاملترین آموزش هاست و کار با سی پنل.در هنگام خرید سرویس هاست کلمه ای به نام “کنترل پنل” را زیاد خواهید دید آیا تا به حال…

سی پنل یک کنترل پنل هاست محبوب و معروف در جهان و ایران است. در فیلم آموزش سی پنل هم توصیه اکید شده تا افراد مبتدی و حتی افراد حرفه ای از این کنترل پنل هاست سی پنل استفاده کنند. آموزش cpanel …
فصلِ: 5 , تعداد قسمت ها: 25 , سطح: صفر تا صد

این فصل در یک نگاه:

فصل پنجم…

توضیحات کلی مجموعه: درباره گیت: لذت پیش بردن پروژه های برنامه نویسی خود را با بهترین ورژن کنترل سیستم جهان تجربه کنید کامل ترین دوره ی آموزشی گیت و گیت هاب به همراه مثال های کاربردی گی…
فصلِ: 1 , تعداد قسمت ها: 15 , سطح: متوسط

این فصل در یک نگاه:

رشد و درآمدزایی یک وب سایت یا کسب و کار اینترنتی کاملا به ذوق و مهارت وب مستر یا همان مدیر اصلی وب سایت گره خورده و متاس…

 اصول مدیریت وب سایت برای وب مستر شدن برای موفقیت یک وب سایت لازم الاجراست. زیرا شما دوست دارید وب سایت خود را به کارخانه پولسازی تبدیل کنید. این واقعیت رویا نیست. هرکس این اصول را بداند به …

تولید شده توسط کلیک سایت

پشتیبانی آنلاین
آماده پاسخگویی هستیم
انتخاب تصویر جهت ارسال:
در حال ضبط صدا

(جهت توقف و یا لغو ضبط از دکمه های زیر استفاده کنید)

توقف و ارسال :
لغو ضبط
در حال حاضر تمامی کارشناسان آفلاین هستند. همواره می توانید با شماره تلگرام / واتساپ 09010005000 به صورت آنلاین با ما در ارتباط باشید. جهت ورود به واتساپ کلیک کنید
0 پیام جدید
پشتیبان در حال تایپ ...
ارسال تصویر ضبط صدا
0 کارشناسان آنلاین می باشند
این گفت و گو توسط پشتیبان به اتمام رسید