آموزش برنامه نویسی ، پایگاه داده sql server
آموزشگاه برنامه نویسی تحلیل داده : دوره های آموزشی برنامه نویسی و طراحی وب ASP.Net , C# , HTML , CSS , SQL Server


آموزشگاه برنامه نویسی مجتمع فنی تهران میرداماد : دوره های آموزشی برنامه نویسی و طراحی وب ASP.Net , C# , HTML , CSS , SQL Server

 آموزش ASP.Net به زبان ساده   >   آموزش مدل فرم های وب ASP.Net Web Forms
درس چهارم : آموزش کار با مدیریت کننده رویدادها ( Event Handlers ) در فرم های وب ASP.Net

مقدمه - مدیریت کننده رویداد ( Event Handlers ) چیست ؟ :

یک مدیریت کننده رویداد تابع یا دستوری است که در هنگام رخ دادن یک رویداد خاص اجرا می شود . برای مثال شما کدی طراحی می کنید تا پس از کلیک بر روی یک دکمه فرمان یا submit فرم اجرا شود .
به کد زیر دقت نمایید :

کد <%
    lbl1.Text="The date and time is " & now()
%>


<html>
   <body>
       <form id="Form1" runat="server">
         
 <h3><asp:label id="lbl1" runat="server" /></h3>
       </form>

    </body>
</html>

در این کد یک کنترل Asp.Net از نوع label داریم که برای نمایش متن بکار می رود . درون صفحه متنی برای آن تعیین شده است ، ولی در کد بالای صفحه که به زنگ قرمز مشخص شده است ، مقدار خاصیت Text برای کنترل توسط یک دستور تعیین شده است . کد فوق به دلیل اینکه درون هیچ مدیریت کننده رویدادی قرار ندارد ، هیچگاه اجرا نمی شود !  . بنابراین مقدار متنی کنترل label خالی خواهد ماند .
به عبارت دیگر برای اجرای کدهای مورد نظر بایستی آنها را درون یک تابع یا مدیریت کننده رویداد قرار دهیم .


رویداد Page_Load یا اجرای آغازین صفحه :

این رویداد یکی از هزاران رویدادی است که در Asp.Net می توان استفاده نمود . این رویداد زمانی رخ می دهد که صفحه لود یا اجرا شود . کدهایی که می خواهید به محض اجرا و شروع صفحه ، اجرا شوند را بایستی در این رویداد قرار دهید .
کدی که در مثال قبل داشتیم را این بار درون رویداد Page_Load قرار داده تا با شروع صفحه اجرا شده و متن درون کنترل Lable را به مقدار دلخواه ما تغییر دهد . بصورت زیر :

کد <script runat="server">
    Sub Page_Load
        lbl1.Text="The date and time is " & now()
    End Sub
</script>


<html>
   <body>
       <form id="Form1" runat="server">
         
 <h3>
               <asp:label id="lbl1" runat="server" />
           </h3>

       </form>

    </body>
</html>
خروجی مشاهده خروجی مثال


خاصیت Page.Is Post Back و کاربرد آن :

هنگامی که صفحه برای اولین بار ساخته و نمایش داده می شود ، رویداد Page_Load رخ می دهد . اما زمانی را فرض کنید که صفحه به سرور ارسال شده و با نتیجه ای برگردد .
یعنی چه :مثلا شما برای روی یک دکمه فرمان در صفحه کلیک کرده ، اطلاعات فرم به سرور ارسال می شود ، سپس نتیجه از سرور بازگشته و صفحه Refresh می شود . در این حالت می گویند صفحه به اصطلاح Post Back شده است .
وقتی این اتفاق رخ دهد مقدار خاصیت Page.IsPostBack صفحه که در حالت عادی False است به True تغییر کرده و می توانید در رویداد های خود از آن استفاده نمایید ، تا کد مورد نظر شما فقط در زمانی که صفحه PostBack شده اجرا شود نه در حالتی که برای اولین بار اجرا می شود ! (Page_Load)  .
مثال : در مثال زیر دو رویداد نوشته شده که اولی در هنگامی که مقدار خاصیت Page.IsPostBack بر روی False بوده ( یعنی صفجه برای اولین بار است که لود می شود ) ، اجرا شده و رویداد دوم در زمانی رخ می دهد که کاربر بر روی دکمه فرمان مثال کلیک نماید .

به کد مثال و توضیجات آن که در ادامه آمده است ، دقت نمایید .

کد <script runat="server">
    Sub Page_Load
        if Not Page.IsPostBack then
            lbl1.Text="The date and time is " & now()
        end if
    End Sub


    Sub submit (s As Object, e As EventArgs)
         lbl2.Text="Hello World!"
    End Sub

</script>
<html>
  <body>
     <form id="Form1" runat="server">
         <h3><asp:label id="lbl1" runat="server" /></h3>
         <h3><asp:label id="lbl2" runat="server" /></h3>
         <asp:button ID="Button1" text="Submit" onclick="submit" runat="server" />
     </form>
  </body>
</html>
خروجی مشاهده خروجی مثال

توضیح کد مثال :

  1. در مثال فوق ، در ابتدا که صفحه اجرا می شود ، رویداد Page_Load رخ می دهد . در این رویداد یک کد شرطی نوشته شده ، که بررسی می کند آیا صفحه از سرور بازگشته ( Page.IsPostBack ) یا خیر ، ( یعنی اولین بار است که دارد اجرا می شود یا نه ).
    اگر صفحه برای اولین بار بوده که اجرا می شود ، بنابراین مقدار خاصیت Page.IsPostBack آن False بوده و دستور کد آبی رنگ اجرا می شود . توسط این دستور یک عبارت با تاریخ و زمان جاری سرور نمایش داده می شود .
  2. اما رویداد دوم با نام ( ) submit ، که به رنگ سبز نمایش داده شده ، زمانی اتفاق می افتد که کاربر بر روی دکمه فرمان Submit کلیک نماید . در این حالت صفحه به سرور Post شده و باز می گردد . بنابراین مقدار خاصیت Page.IsPostBack آن True می شود .
    در نتیجه کد قسمت آبی برای با دوم اجرا نشده و تاریخ Refresh نمی شود ، اما متن کنترل lbl2 به مقدار Hello World! تغییر می کند .


راجع این مطلب سوال یا اشکالی دارید ؟! آن را در انجمن سایت مطرح نمایید ...         >>>>>  ورود به انجمن تخصصی


نطر خودتان درباره این صفحه را با ما در میان گذاشته و در صورت تمایل از Developer1 حمایت نمایید :

آیا مطالب این صفحه برای شما مناسب و مفید بوده است :

نام :                 
آدرس Email :    
 
نظر شما :  
 
سوال امنیتی : پایتخت ایران ؟      
حمایت از سایت Developer1