عنوان
|
نويسنده
|
مشاهده
|
تعداد
آراء |
امتياز
|
كنترل های Validation در ASP.NET ( بخش سوم ) |
مديريت وب |
14318 |
16 |
4.1 |
با توجه به جایگاه داده در عصر حاضر و لزوم نگاه جامع به این مقوله مهم ، بر آن شدیم تا محوریت فعالیت های خود را بر روی این موضوع متمرکز نمائیم . از این رو گروه فابک با شعار فناوری اطلاعات برای کسب وکار شکل گرفت و خدمات خود را از طریق سایت www.fabak.ir به مخاطبان محترم عرضه می نماید
 |
كنترل های Validation در ASP.NET
كنترل های Validation در ASP.NET
( بخش سوم )
در
بخش اول
به ماهيت و جايگاه كنترل های validation اشاره و عملكرد
دو كنترل <asp:RequiredFieldValidator> و
<asp:RangeValidator> بررسی گرديد.در بخش دوم
با كنترل های <asp:CompareValidator> و <asp:CustomValidator> آشنا شديم . در اين بخش به بررسی ساير كنترل های validation خواهيم
پرداخت .
گروه های
validation
در زمان
پياده سازی فرم های ورود اطلاعات به مواردی برخورد خواهيم كرد كه لازم است از
چندين TextBox به منظور دريافت داده
ورودی جهت انجام
پردازش های مورد نياز در يك اسكريپت ، استفاده گردد .همچنين
، ممكن است در مواردی لازم باشد كه از چندين button در
يك فرم ورود اطلاعات استفاده گردد و متناسب با اين كه كدام
button توسط كاربران فعال شده است ، بررسی و صحت داده ورودی تعداد خاصی از
كنترل های موجود بر روی فرم ورود اطلاعات ( مستقل از ساير كنترل ها ) ، انجام شود .
در چنين مواردی می بايست تمامی كنترل هائی را كه می خواهيم پس از كليك بر روی
يك button خاص ،
validate شوند را عضوء يك گروه نمود و نام آن گروه را برای
button مورد نظر نيز مشخص نمود . بدين ترتيب ، پس از
كليك بر روی button مورد نظر صرفا" آندسته از كنترل هائی
كه عضوء گروه هم نام با گروه معرفی شده به همراه button
می باشند ، بررسی و ارزيابی خواهند شد .
مثال
در فرم ورود اطلاعات زير از چندين كنترل ( چهار كنترل
TextBox ) استفاده شده است كه تمامی آنها عضوء يك
گروه validation می باشند . پس از كليك بر روی دكمه
"ارسال اطلاعات " ، صرفا" آندسته از كنترل هائی كه كنترل های
validation آنها عضوء گروه مشخص شده می باشند ، validate
خواهند شد .

فرم ورود اطلاعات : استفاده از چهار كنترل
TextBox كه تمامی آنها عضوء يك گروه
Validation می باشند
<SCRIPT
Runat="Server">
Sub Validate_Email
(Src As Object, Args As ServerValidateEventArgs)
If InStr(Args.Value, "@") = 0 Then
EmailValidator.ErrorMessage = "لطفا يك آدرس پست الكترونيكی صحيح را وارد
نمائيد"
Args.IsValid = False
End If
End Sub
Sub Get_Data
(Src As Object, Args As EventArgs)
If Page.IsValid Then
Output.Text = "You entered valid data"
End If
End Sub
</SCRIPT>
<form Runat="Server">
<h3>فرم ورو اطلاعات</h3>
<table border="0" cellpadding="2">
<tr>
<td>نام:</td>
<td><asp:TextBox id="FirstName" Runat="Server"/></td>
<td><asp:RequiredFieldValidator Runat="Server"
ControlToValidate="FirstName"
ValidationGroup="Group1"
ErrorMessage="لطفا نام خود را
وارد نمائيد"
Display="Dynamic"/></td>
</tr>
<tr>
<td>نام خانوادگی:</td>
<td><asp:TextBox id="LastName" Runat="Server"/></td>
<td><asp:RequiredFieldValidator Runat="Server"
ControlToValidate="LastName"
ValidationGroup="Group1"
ErrorMessage="لطفا نام
خانوادگی خود را وارد نمائيد"
Display="Dynamic"/></td>
</tr>
<tr>
<td>سن:</td>
<td><asp:TextBox id="Age" Width="50" Runat="Server"/></td>
<td><asp:RangeValidator Runat="Server"
ControlToValidate="Age"
ValidationGroup="Group1"
Type="Integer"
MinimumValue="15"
MaximumValue="99"
ErrorMessage="لطفا" يك
عدد بين پانزده تا نود و نه را وارد نمائيد "
Display="Dynamic"/>
<asp:RequiredFieldValidator Runat="Server"
ControlToValidate="Age"
ValidationGroup="Group1"
ErrorMessage="لطفا سن خود را
وارد نمائيد "
Display="Dynamic"/></td>
</tr>
<tr>
<td>آدرس پست الكترونيكی:</td>
<td><asp:TextBox id="Email" Runat="Server"/></td>
<td><asp:CustomValidator id="EmailValidator" Runat="Server"
ControlToValidate="Email"
ValidationGroup="Group1"
Display="Dynamic"
OnServerValidate="Validate_Email"/>
<asp:RequiredFieldValidator Runat="Server"
ControlToValidate="Email"
ValidationGroup="Group1"
ErrorMessage="لطفا آدرس
پست الكترونيكی خود را وارد نمائيد"
Display="Dynamic"/></td>
</tr>
</table>
<br/>
<asp:Button Text="ارسال اطلاعات" ValidationGroup="Group1"
OnClick="Get_Data"
Runat="Server"/>
<asp:Label id="Output" Runat="Server"/><br/>
</form>
|
به دكمه "ارسال اطلاعات "
، يك نام گروه validation نسبت داده شده است
تا پس از كليك بر روی آن ، كنترل هائی كه كنترل های validation
آنها عضوء گروهی با همين نام می باشند ، بررسی و ارزيابی گردند . در صورتی كه از
كنترل های validation ديگر بر روی فرم استفاده شده است
كه عضوء گروه validation نمی باشند ، پس از كليك بر روی
دكمه "ارسال اطلاعات " ، ارزيابی نخواهند شد .
پس از كليك بر روی هر button موجود بر روی يك فرم ،
صرفا" آندسته از كنترل هائی بررسی و ارزيابی خواهند شد كه تشكيل يك گروه را می دهند
و از يك نام مشابه برای گروه استفاده می نمايند كه همانند نام نسبت داده شده به
button مورد نظر است .
كنترل
<asp:ValidationSummary>
با استفاده از كنترل
<asp:ValidationSummary> ، پيام های خطاء جداگانه توسط يك كنترل توليد و با يكديگر
نمايش داده می شوند. كنترل فوق ، همچنين قادر به توليد گزارش پيام های خطاء محدود
به مجموعه ای خاص از كنترل ها می باشد .
شكل عمومی
شكل عمومی كنترل فوق به صورت زير است :
<asp:ValidationSummary id="id" Runat="Server"
DisplayMode="BulletList|List|SingleParagraph"
HeaderText="string"
ShowMessageBox="False|True"
ShowSummary="False|True"
ValidationGroup="name"
/>
|
توضيحات
-
خصلت DisplayMode ، نحوه ( فرمت ) نمايش پيام های خطاء را
مشخص می نمايد كه به صورت پيش فرض يك ليست bulleted در
نظر گرفته می شود .
-
مكان نمايش گزارش پيام های خطاء در محلی است كه كنترل
ValidatiomSummary استفاده شده است .
-
با
استفاده از خصلت ShowMessageBox و نسبت دادن مقدار
True به آن ، يك پيام pop-up
نمايش داده خواهد شد .
بدين ترتيب ، خروجی كنترل ValidationSummary در يك PoP-Up
نمايش داده می شود .
-
در صورتی كه خلاصه گزارش خطاء مرتبط با يك گروه
validation خاص می باشد ،
می بايست نام آن گروه به خصلت
ValidationGroup نسبت داده شود .
مثال
مثال زير ، بازنويسی مثال قبل است
. با اين تفاوت كه
در مقابل نمايش جداگانه پيام های خطاء ، از يك كنترل
ValidationSummary استفاده شده است .

استفاده از كنترل
ValidationSummary
<SCRIPT
Runat="Server">
Sub Validate_Email
(Src As Object, Args As ServerValidateEventArgs)
If InStr(Args.Value, "@") = 0 Then
EmailValidator.ErrorMessage = "لطفا يك آدرس پست الكترونيكی صحيح را وارد
نمائيد"
Args.IsValid = False
End If
End Sub
Sub Get_Data
(Src As Object, Args As EventArgs)
If Page.IsValid Then
Output.Text = "You entered valid data"
End If
End Sub
</SCRIPT>
<form Runat="Server">
<h3>فرم ورو اطلاعات</h3>
<table border="0" cellpadding="2">
<tr>
<td>نام:</td>
<td><asp:TextBox id="FirstName" Runat="Server"/></td>
<td><asp:RequiredFieldValidator Runat="Server"
ControlToValidate="FirstName"
ValidationGroup="Group1"
ErrorMessage=" نام "
Display="None"/></td>
</tr>
<tr>
<td>نام خانوادگی:</td>
<td><asp:TextBox id="LastName" Runat="Server"/></td>
<td><asp:RequiredFieldValidator Runat="Server"
ControlToValidate="LastName"
ValidationGroup="Group1"
ErrorMessage=" نام خانوادگی "
Display="None"/></td>
</tr>
<tr>
<td>سن:</td>
<td><asp:TextBox id="Age" Width="50" Runat="Server"/></td>
<td><asp:RangeValidator Runat="Server"
ControlToValidate="Age"
ValidationGroup="Group1"
Type="Integer"
MinimumValue="15"
MaximumValue="99"
ErrorMessage="يك عدد بين
پانزده تا نود و نه "
Display="None"/>
<asp:RequiredFieldValidator Runat="Server"
ControlToValidate="Age"
ValidationGroup="Group1"
ErrorMessage=" سن "
Display="None"/></td>
</tr>
<tr>
<td>آدرس پست الكترونيكی:</td>
<td><asp:TextBox id="Email" Runat="Server"/></td>
<td><asp:CustomValidator id="EmailValidator" Runat="Server"
ControlToValidate="Email"
ValidationGroup="Group1"
Display="None"/>
OnServerValidate="Validate_Email"/>
<asp:RequiredFieldValidator Runat="Server"
ControlToValidate="Email"
ValidationGroup="Group1"
ErrorMessage=" آدرس پست
الكترونيكی "
Display="None"/></td>
</tr>
</table>
<br/>
<asp:Button Text="Submit" ValidationGroup="Group1"
OnClick="Get_Data"
Runat="Server"/>
<asp:Label id="Output" Runat="Server"/><br/>
<asp:ValidationSummary Runat="Server"
ValidationGroup="Group1"
DisplayMode="BulletList"
HeaderText=" لطفا
اطلاعات زير را وارد نمائيد "
ShowSummary="True"
ShowMessageBox="False"/>
</form>
|
در بخش چهارم به بررسی
برخی نكات خاص در خصوص ايمن سازی برنامه های وب با تمركز بر روی كنترل های
Validation خواهيم پرداخت .