ورود

View Full Version : اعتبار سنجی تاریخ و حروف



EHSH
یک شنبه 01 بهمن 1385, 13:53 عصر
با سلام !
از اساتید گرانقدر کسی میدونه برای اعتبار سنجی فیلدی که فقط بخواهیم توش تاریخ معتبر شمسی بگیره چه ValidationExpression باید بگزاریم ؟
یا برای گرفتن حروف ؟ حروف من *W\ برای مقدار ValidationExpression گذاشتم ولی حروف فارسی قبول نمیکنه ؟

Alireza_Salehi
یک شنبه 01 بهمن 1385, 14:40 عصر
با عبارتی مثل \d\d\d\d[/]\d\d[/]\d\d میشه تاریخی مثل 1385/12/28 رو کنترل کرد که البته فقط تعداد اعداد رو در هر قسمت و وجود \ رو چک می کنه و محدوده اعداد رو چک نمی کنه (مثلا ماه بین 1 تا 12 باشه-البته عبارت های پیچیده تری هم برای این کار میشه ایجاد کرد)

به مرجع RegularExpression (http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpgenref/html/cpconRegularExpressionsLanguageElements.asp) قسمت Character Classes (http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpgenref/html/cpconcharacterclasses.asp) یه نگاهی بندازی بیشتر توضیح داده.

در مورد استفاده از حروف فارسی در RegularExpressionValidator اطلاعی ندارم ولی به روش زیر هر نوع تایید اعتباری (مثل تعیین محدوده ماه ،سال و روز یا مقایسه یک عبارت فارسی) می شه انجام داد:

میشه از CustomValidation استفاده کنی و در تابع مورد نظر به طور دلخواه هر نوع عبارتی رو چک کنی!
بعد از اضافه کردن یک CustomValidator به صفحه کد زیر رو می نویسی

Public Sub [نام تابع به دلخواه شما](source As Object, args As ServerValidateEventArgs)
'اگر تایید اعتبار موفقیت آمیز است
args.IsValid = true
'اگر تایید اعتبار موفقیت آمیز نیست
args.IsValid = false

End Subبعد در قسمت Source به تعریف CustomValidator عبارت زیر رو اضافه می کنی

OnServerValidate="نام تابعی که تعریف کردید"می تونی یک customValidator برای چک کردن محدوده اعداد و یک RegularExpressionValidator برای چک کردن فرمت تاریخ استفاده کنی. البته بهتره با استفاده از کلاس RegularExpression دات نت فرمت رو هم تو همون تابع CustomValidator چک کنی.

اطلاعات بیشتر در مورد CustomValidator از MSDN:
CustomValidator Class (http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfsystemwebuiwebcontrolscustomvalidatorclasstop ic.asp)

این هم یک مثال (مقایسه عبارت وارد شده در یک textbox ) کنترل ولیدیشن قبلا به یک جعبه متن متصل شده است.


Public Sub ValidateMyFarsiText (ByVal source As Object, ByVal args As ServerValidateEventArgs)
If args.Value = "سلام" Then
args.IsValid = True
Else
args.IsValid = False
End If
End Sub

federrer
چهارشنبه 06 تیر 1386, 20:40 عصر
می تونی یک customValidator برای چک کردن محدوده اعداد استفاده کنی.


من چند تا بازه دارم مثلا 0-5 و 10-15 و 20 -25 که می خواستم برای یه تکست باکس با Range validator تعیین رنج کنم .

یعنی کاربر فقط تو این رنج ها بتونه عدد وارد کنه. فهمیدم که باید از customValidator استفاده کنم


یه مثال برام می نویسی ؟؟ برای تابع بالا هر کاری کردم نتونستم شرط بذارم !!!!