رسیدگی به رویدادهای کنترلی در ASP.NET
نحوه پاسخگوئی به اعمال یا درخواستهای کاربر در یک صفحه ASP.NET
هنگامی که در یک فرم HTML یک دکمه (Button) فشرده (کلیک) می شود، یک رویداد (Event) رخ می دهد یا هنگامی که یک لیست بازشو (ComboBox) را باز می کنیم باز هم یک رویداد اتفاق افتاده است.
بنابراین یک رویداد در یک صفحه وب عبارت است از تغییر وضعیتی که در آن صفحه رخ می دهد خواه این تغییر وضعیت، خودکار باشد یا بصورت غیرخودکار توسط کاربر رخ دهد.
از رویدادهای خودکار می توان به رویدادهای Init ، Load و Unload اشاره کرد. از موارد غیرخودکار می توان به فشردن یک دکمه در یک فرم یا خاموش / روشن کردن یک گزینه انتخابی (checkbox) اشاره نمود.
همانگونه که می دانیم دو نوع کنترل HTML و وب در ASP.NET وجود دارد. هر دو نوع این کنترل ها می توانند سبب ایجاد رویدادی گردند. رسیدگی به یک رویداد (Event Handling) عبارت است از انجام عمل خاصی به ازای رخ دادن آن رویداد. جهت رسیدگی به یک رویداد می توان یک روال نوشت که مثلا هنگام فشرده شدن دکمه ای در یک فرم، داده های ورودی در فرم درون یک جدول در یک بانک اطلاعاتی ذخیره شوند.
رسیدگی به رویدادهای کنترل های HTML
فشردن یک دکمه HTML در یک صفحه ASP.NET سبب رخ دادن رویداد ServerClick می شود. هنگامی که فرم مذکور به روی سرور ارسال می شود، این رویداد بر روی سرور رخ می دهد.
مثال زیر نحوه رسیدگی به رویداد ServerClick را بخوبی نشان می دهد. حاصل اجرای برنامه زیر نمایش وارونه متنی است که در فرم وارد شده است.
<Script runat=”Server”>
Sub submitText( s As Object, e As EventArgs )
mySpan.InnerHtml = StrReverse( myTextArea.Value )
End Sub
</Script>
<html>
<head><title>HtmlControlEvents.aspx</title></head>
<body>
<form runat=”server”>
Enter some text:
<br>
<textarea
id=”myTextArea” cols=”30″ rows=”3″
runat=”Server”></textarea>
<p>
<input type=”submit” value=”Submit Text!”
runat=”server” onServerClick=”submitText”>
<p>
<span id=”mySpan” runat=”server”></span>
</form>
</body>
</html>
در مثال فوق دکمه HTML بصورت زیر تعریف شده است:
<input type=”submit” value=”Submit Text!”
runat=”server” onServerClick=”submitText”>
به مشخصه onServerClick=”submitText” توجه کنید. هنگامی که بر روی دکمه مذکور کلیک شود، مشخصه onServerClick سبب اجرای روال submitText می گردد.
روال submitText در یک بلوک برنامه ای در بالای صفحه تعریف شده است. این روال متن وارد شده در textbox را گرفته و آن را بصورت وارونه به کنترل <span> منسوب می کند.
روال submitText دارای دو نوع پارامتر است: یکی از نوع object و دیگری از نوع EventArgs. پارامتر از نوع object حاوی کنترلی است که رویداد مربوطه را صادر کرده است. در مثال فوق کنترل صادر کننده رویداد، دکمه روی فرم است. پارامتر EventArgs حاوی اطلاعات مخصوصی است که ممکن است همراه رویداد ارسال گردد. در مثال فوق اطلاعاتی ارسال نمی شود.
رسیدگی به رویدادهای کنترل های وب
رسیدگی به رویدادهای کنترل های وب همانند رسیدگی به رویدادهای کنترل های از نوع HTML است. برای مثال کنترل Button یا دکمه یک رویداد از نوع Click را صادر می کند که می توان در برنامه به آن رسیدگی نمود.
مثال زیر همانند مثال قبل می باشد با این تفاوت که این مثال برای کنترل های وب نوشته شده است.
<Script runat=”Server”>
Sub submitText( s As Object, e As EventArgs )
myLabel.Text = StrReverse( myTextBox.Text )
End Sub
</Script>
<html>
<head><title>WebControlEvents.aspx</title></head>
<body>
<form runat=”server”>
Enter some text:
<br>
<asp:TextBox
id=”myTextBox”
TextMode=”Multiline”
Columns=”30″
Rows=”3″
Runat=”Server” />
<p>
<asp:Button
Text=”Submit Text!”
runat=”server”
onClick=”submitText” />
<p>
<asp:Label
id=”myLabel”
runat=”server” />
</form>
</body>
</html>
در مثال فوق کنترل Button بصورت زیر تعریف شده است:
<asp:Button
Text=”Submit Text!”
runat=”server”
onClick=”submitText” />
مشخصه onClick جهت برقرار نمودن ارتباط رویداد Click مربوط به کنترل Button به روال submitText می باشد. هنگامی که بر روی کنترل Button کلیک شود، این روال بر روی سرور اجرا می گردد.