|
آموزش asp.net در این وبلاگ سعی شده تا اطلاعاتی در مورد asp.net و مثال هایی از آن برای کاربران ارائه شود. |
در این وبلاگ فرض شده کاربران عزیز تا حدی با ASP.NET آشنایی دارند.
امیدواریم بتوانیم بخشی از نیازهای شما را براورده کنیم.
ساعت و تاريخ
موضوعات
آمار بازدید : نفر
افراد آنلاين : نفر
اعتبار سنجی اطلاعات (قسمت چهارم) ( )
«جلسه چهارم»
کنترل CompareValidation:
این کنترل برای مقایسه اطلاعات وارد شده در یک فیلد با مقداری دیگر به کار برده میشه که این مقدار میتونه یه مقدار ثابت و مشخص، یا مقداری باشه که در فیلد دیگری وارد شده است.
این کنترل علاوه بر خصوصیات مشترک بین Validation کنترل ها خصوصیات دیگه ای از جمله :
Control To Compare ، Operator ، Type و Value To Compare رو نیز داره که به شرح مختصری از اون ها می پردازم.
1. Control To Compare: اگه ما خواسته باشیم که مقدار فیلد مورد سنجش رو با مقدار یه کنترل دیگه مقایسه کنیم مقدار این خصوصیت رو برابر با ID اون کنترل قرار میدیم.
2. Operator: این خصوصیت عملگری رو مشخص میکنه که برای مقایسه به کار میره ،مثل مساوی، نامساوی، بزرگتر و....
3. Type: این خصوصیت نوع داده ای مقادیری که قصد مقایسه اونها رو داریم مشخص میکنه، مثل: رشته، عدد، تاریخ و....
4. Value to Compare: اگه بخوایم محتوای فیلد مورد نظر رو با یه مقدار ثابتی مقایسه کنیم ،اون مقدار ثابت رو به این خصوصیت میدیم.
یه نمونه پر استفاده از این کنترل ،همون طور که در فرم های عضویت هم دیدین هنگام گرفتن رمز عبور و تکرار اون از کاربر ه. بدین صورت که مقادیر این دو فیلد با هم مقایسه شده و در صورت برابر بودن فرم به سرور تسلیم میشه، البته علت این مقایسه اینه که ممکنه کاربر اشتباهاً یه حرف از رمز عبورشو نادرست وارد کنه و چون رمز عبور با دایره یا ستاره نشون داده میشه کاربر متوجه اشتباهش نمیشه، بنابراین از کاربر تکرار رمز عبور نیز گرفته میشه ه در این صورت اگه کاربر رمزش رو اشتباه وارد کنه و مقادیر این دو فیلد یکسان نباشه به کاربر توسط کنترل CompareValidator اطلاع داده میشه و کاربر میتونه رمز مد نظرش رو صحیح وارد کنه.
برای مقایسه دو فیلد رمز عبور باید خصوصیات ControlToValidate ، ControlToCompare ، Operator و Type رو که قبل گفتم مقداردهی و تنظیم کنیم.که طرز استفاده از اون ها رو در کد زیر بهتون نشون میدم.
<script runat=”Server”>
Sub Button_Click(s As Object, e As EventArgs)
If IsValid Then
Response.Redirect( “ThankYou.aspx” )
End If
End Sub
</script>
<Html>
<Head><title>RequiredFieldValidator</title></Head>
<body>
<form runat=”Server”>
Username:
<br><asp:TextBox ID=”txtusername” runat=”Server” />
<asp:RequiredFieldValidator
ControlToValidate=”txtusername”
Text=”You must enter a Username!”
Runat=”Server” />
<p>
Password:
<br><asp:TextBox ID=”txtpassword” TextMode=”Password” runat=”Server” />
<asp:RequiredFieldValidator
Display=”Dynamic”
ControlToValidate=”txtpassword”
Text=”You must enter a Password!”
Runat=”Server” />
<asp:RegularExpressionValidator
Display=”Dynamic”
ControlToValidate=”txtpassword”
Text=”Your password must contain between 6 and 20 characters!”
ValidationExpression=”\w{6,20}”
Runat=”Server” />
</p>
<p>
Confirm Password:
<br><asp:TextBox ID=”txtconfirmpassword” TextMode=”Password” runat=”Server” />
<asp:RequiredFieldValidator
Display=”Dynamic”
ControlToValidate=”txtconfirmpassword”
Text=”You must enter Password again to confirm!”
Runat=”Server” />
<asp:CompareValidator
Display=”Dynamic”
ControlToValidate=”txtconfirmpassword”
ControlToCompare=”txtpassword”
Text=”Your password must be Equal to confirm password!”
Operator=”Equal”
Type=”String”
Runat=”Server” />
</p>
<p>
<asp:Button Text=”Submit”
OnClick=”Button_Click”
Runat=”Server” />
</form>
</body></html>
*نکته:
همون طور که در کد فوق می بینید ما میتونیم برای یه فیلد از چندین اعتبار سنج استفاده کنیم.*
بررسی نوع داده ای :
یک دیگه از استفاده های مهم این کنترل اینه که میشه با این کنترل و استفاده از خصوصیت Operator این کنترل چک کنیم که کاربر در فیلد های مورد نظر اطلاعاتی با نوع داده ای که ما میخوایم رو وارد کنه ، مثلا نوع داده ای برای تاریخ تولد از نوع Date ، برای اسم کاربری از نوع رشته (string) و... است.
برای این کار همونطور که در کد زیر می بینین مقدار خصوصیت Operator رو برابر با DataTypeCheck قرار میدیم و مقدار خصوصیت Type رو نوع داده ایی که مد نظرمون هست رو قرار میدیم.
مثلا در کد زیر کاربر حتما باید تاریخ تولدشو به طور صحیح و از نوع Date وارد کنه .
*نکته :
البته باید در نظر گرفت که نوع داده ای date تنها تاریخ میلادی رو قبول داره نه تاریخ شمسی رو.*
<script runat=”Server”>
Sub Button_Click(s As Object, e As EventArgs)
If IsValid Then
Response.Redirect( “ThankYou.aspx” )
End If
End Sub
</script>
<Html>
<Head><title>RequiredFieldValidator</title></Head>
<body>
<form runat=”Server”>
Enter Your Brirth Date:
<br><asp:TextBox ID=”txtBirthDate” runat=”Server” />
<asp:CompareValidator
ControlToValidate=”txtBirthDate”
Text=”Invalid birth date!”
Operator=”DataTypeCheck”
Type=”Date”
Runat=”Server” />
</p>
<p>
<asp:Button Text=”Submit”
OnClick=”Button_Click”
Runat=”Server” />
</form>
</body></html>
در کد فوق اگه تاریخ نا معتبری در فیلد txtBirthDate وارد بشه پیغام خطایی توسط اعتبار سنج نشون داده میشه .
خوب امیدوارم که تا اینجا مطالب براتون مفید بوده باشه، در قسمت بعد قصد دارم که در رابطه با Validation Summary و طرز استفاده از اون رو براتون بنویسم و مبحث Validation کنترل ها رو تموم کنم. لطفاً منو با پیشنهادات و نظراتتون همراهی کنید.
نوشته شده توسط a.karami در جمعه هشتم اردیبهشت 1385
لينك مطلب
مطالب پیشین
![]()
کپی برداری از مطالب وبلاگ فقط با ذکر منبع مجاز میباشد .
All Rights Reserved 2005-2006 © by
aspnetlearning.blogfa.com
The Template Designed By Loghman Avand @
www.irlearn.com