PDA

توجه ! این یک نسخه آرشیو شده می باشد و در این حالت شما عکسی را مشاهده نمی کنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : ShamsiDateValidator - کامپوننتی برای بررسی صحت تاریخ شمسی در ASP.NET



Borna66
06-06-2011, 12:44 PM
خیلی وقت پیش جناب راد کامپوننتیرائه کرد که کار بررسی تاریخ شمسی رو انجام میداد. من تا دیروز اصلا از این کامپوننت استفاده نکرده بودم تا اینکه یکی از دوستان تاپیکی زد و عنوان نمود با استفاده از این کامپوننت مشکل داره. من وقتی چک کردم متوجه ایرادات کوچکی توی این کامپوننت شدم. که توی همون تاپیک توضیح دادم. فکر کردم یه سری قابلیت ها رو هم بهش اضافه کنم و در کل این کامپوننت رو بهینه کنم.
با اجازه جناب راد این کامپوننت رو که الهام گرفته از کار خود ایشان هست در اختیار دوستان میذارم.



مشخصات این کامپوننت:
زبان توسعه: C#‎‎‎‎‎
هدف: اعتبارسنجی تاریخ شمسی
حجم: 20.0 کیلوبایت

چند نکته پیرامون این کنترل:
1) استفاده از این کنترل دقیقاً همانند کنترل های Validation در ASP.NET هست.
2) این کنترل، بررسی رو در دو سطح کلاینت و سرور انجام میده.
3) خصوصیات این کامپوننت:
ValidateEmptyText: اگر True باشه فیلدهای خالی رو هم اعتبار سنجی میکنه.
AcceptWithoutZero: این خاصیت تعیین میکنه که آیا روز و ماه میتونه تک رقمی باشه یا نه (89/03/11 <> 89/3/11)
DateFormat: فرمت تاریخ که ابتدا سال باشد یا روز (yyyy/MM/dd <> dd/MM/yyyy)
FixedYearPart: قسمت ثابت سال برای زمانیکه خاصیت IsTowDigitYear برابر True باشه. با این قابلیت میتونید تعیین کنید که قسمت ثابت سال مثلا 13 یا 14 باشه و تاریخ 89 خود به خود به تاریخ 1389 تغییر داده میشه این خصوصیت فقط زمانی عمل میکنه که خصوصیت IsTowDigitYear برابر True باشه.
FixedYearPart: دو عدد ثابت سمت چپ سال
IsTowDigitYear: دریافت سال بصورت دو رقمی است
MinYearAccept: حداقل سال ورودی قابل قبول
MaxYearAccept: حداکثر سال ورودی قابل قبول
RtlValidationMode: این خصوصیت سه مقدار میگیره: (None - All - OnlyIE) که جهت اعمال نوع اعتبارسنجی راست به چپ هست .
با دو خصوصیت آخری امکان اعتبارسنجی تاریخ از 1/1/1 تا الی ماشاا... امکانپذیره و محدودیتی ندارید(هدف آموزش این بود که چطور میشه به دارز مدت فکر کرد.)
بنابراین زمانیکه وارد سال 1400 شدیم میتونیم با تعیین خصوصیت FixedYearPart بصورت 14 سال های ورودی 87 رو به 1487 تبدیل کنیم.
4)کامپوننت با بررسی قابیلت Partial Rendering Page اقدام به رجیستر کردن خودش میکنه لذا با آپدیت پانل نباید مشکلی داشته باشه.
5) این کنترل، بررسی سال کبیسه رو هم انجام میده.
دوستان عزیز کسانی که از کامپوننت استفاده میکنن شرعا ، اخلاقا و حقوقا موظف به درج نظر هستند(نگفتم تشکر ) تا انشا... با این کامپوننت مشکلی برای اعتبارسنجی تاریخ شمسی نباشه و دیگه شاهد نباشیم بعد 1 سال زحمت آقای راد تاپیکی زده بشه که کامپوننت ایراد داره(بی شک اگر دوستانی که استفاده کرده بودند نظر میدادن این وضعیت پیش نمیومد.)