نحوه استفاده از Validatorها در Asp.net
چند وقت میشه که درجریان تغییر شرکت، زمانی برای بروز رسانی مطالب وبلاگ ندارم و در مین مدت تعداد زیادی ای-میل گرفتم، و از همه این دوستان قدردانی میکنم که دلیل بروزنشدن وبلاگ رو جویا شدن. بهرحال امروز بخاطر کمی وقت یک مطلب پرکاربرد ولی ساده رو مینویسم تا هم از من زیاد وقت و انرژی نگیره و هم اینکه زمان زیادی برای مطالعه اون نزارید.
—————————————————————-
این مطلب زیر نظر مجوز GFDL منتشر میشود. و کلیه حقوق آن برای همگان آزاد است، بدین شرط که به کلیه شرایط موجود در مجوز GFDL ( که یک نسخه از متن انگلیسی مجوز GFDL در این محل و یک ترجمه غیر رسمی (فارسی) از متن مجوز GFDL که در مرداد ۱۳۸۳ توسط کاوه رنجبر تهیه شده است در این محل ) قرار دارد پایبند باشد.

GNU Logo
عنوان مطلب : نحوه استفاده از Validatorها در Asp.net
بخش ثانی : ندارد
تاریخ انتشار : ۲۰/02/1387 مطابق با ۱۰/0۵/2009
شماره نسخه : نسخه یک
نویسنده : ناصر حاجلو
ای-میل نویسنده : n.hajloo@gmail.com
Copyright (c) 2009 Nasser Hajloo.
Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation;
with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled “GNU Free Documentation License”.
—————————————————————-
خیلی وقتها شما یک فرم دارید که میخواهید یکسری ورودی خاص داشته باشد تا شما بعدا در کد برنامه و یا در سرویسهای پایینتر اقدام به بررسی فرمت (قالب)، صحت اطمینان از وجود آن و موارد مشابه نداشته باشید. برای این کار باید ، این کار را در سطح UI برنامه انجام دهید.
فرض کنید که یک فرم دارید که در آن تعدادی TextBox قرار گرفته و اکنون شما میخواهید وقتی که کاربر روی دکمه ثبت اطلاعات ( و یا هر دکمه دیگری ) کلیک کرد، پیش از
ارسال دادهها به لایههای پایین تر واحتمالا بروز مشکل و بازگرداندن مشکل مجددا به سطح UI و نمایش خطای پیش آمده به کاربر،
اگر کاربر فیلدهای مور نظر شما را به شکل صحیح وارد نکرده بود، نتواند بر روی دکمه مورد نظرکلیک کند.
برای این منظور شما میتوانید کدهای جاوااسکریپت مختلفی را بنویسید، اما خود من به شخصه، به علت بهینه بودن کار ابزار فراهم شده در asp.net استفاده از انواع مختلف کنترل Validator را توصیه میکنم. در زیر لیستی از انواع مختلف Validator ها را میآورم.
-
RequiredFieldValidation Control : برای فیلدهای اجباری
-
CompareValidator Control : برای اطمینان از وارد کردن مشابه دو فیلد خاص بصورت یکسان ( مثل کلمه عبور )
-
RangeValidator Control : اطمینان از ورود اطلاعات در یک رنج خاص ( مثل از تریخ فلان تا تاریخ فلان )
-
RegularExpressionValidator Control : برای چک کردن یک عبارت و یکی بودن آن با یک عبارت با قاعده
-
CustomValidator Control : دصورتی که بخواهیم یک متدخاص در صورت صحت اعتبار فیلد در کلاینت و یا سرور صدا زده شود
همانطور که در بالا ملاحظه میکنید ۵ نوع مختلف از ابزارهای اعتبارسنجی در asp.net موجود است که به اختصار با هرکدام آشنا شدید. هر کدام از این ابزارها در جای خاص خودشان کاربرد دارند که از حوصله این بحث خارج است ( در واقع با توصیفی که داده شد کاملا مشخص است ) اما نحوه استفاده از این ابزارها کاملا یکسان است.
شما باید یکسری TextBox (یا هر کنترل دلخواه دیگر) بر روی صفحه بگذارید و صفات زیر را برای validator ها به شکل مناسبی مقداردهی نمایید.
-
ControlToValidate : فیلد (کنترل)ی که باید مورد اعتبارسنجی قرار بگیرد
-
ErrorMessage : پیغام خطایی که پس از وقوع در ابزار Validation Summary نمایش داده خواهد شد
-
IsValid : مقداری برای valid کردن فیلد
-
Validate : متدی برای validate کردن فیلد، در واقع مقدار IsValid را بروزرسانی میکند
-
Display : نحوه نمایش پیغام خطا که به سه شکل زیر است
-
None (پیغام خطا هیچگاه نمایش داده نمیشود)
-
Static (اگر محل نمایش پیغام خطاها، در محل خاصی از صفحه بود)
-
Dynamic (پیغام خطا را همانجا نشان بده)
فقط توجه داشته باشی که در کنترل CustomValidator صفات به شکل زیر خواهد بود
-
ClientValidationFunction : متدی که با زبان جاوا اسکریپت نوشته میشود و در صورت صحت اعتبار اجرا خواهد شد
-
OnServerValidate : متدی که با استفاده از c# یا vb نوشته خواهد شد و در صورت صحت اعتبار اجرا خواهد شد
در نهایت خروجی این validator ها در ابزاری با نام Validation Summary نمایش داده خواهد شد. این ابزار همه پیغامهای خطا را دریافت کرده و به شما بصورت لیست (DisplayMode=List) نشان خواهد داد، توجه داشته باشید که میتوانید خروجی را در یک دیالوگ باکس هم مشاهده کنید که باید صفت دیگری را مقداردهی کنید.
