نمایش نتایج 1 تا 24 از 24

نام تاپیک: BehooPersianDateValidator - کامپوننتی برای بررسی صحت تاریخ شمسی در ASP.NET

  1. #1

    Thumbs up BehooPersianDateValidator - کامپوننتی برای بررسی صحت تاریخ شمسی در ASP.NET

    کنترل های Validator در ASP.NET، مجموعه ی کاملی هستند اما امکانی برای بررسی صحت تاریخ شمسی ارائه نمیدن.
    از این رو بر آن شدم تا با ایجاد یک کامپوننت، این قابلیت رو برای تاریخ شمسی ایجاد کنم.

    چند نکته پیرامون این کنترل:

    1) استفاده از این کنترل دقیقاً همانند کنترل های Validation در ASP.NET هست.

    2) این کنترل، بررسی رو در دو سطح کلاینت و سرور انجام میده.

    3) برای این کنترل، چند قابلیت منحصر به فرد هم در نظر گرفتم. سه خاصیت اضافه ای که علاوه بر خواص معمول کنترل های Validation در ASP.NET برای این کنترل ایجاد کردم شامل:
    - خاصیت FirstWhat: با استفاده از این خاصیت می تونید تعیین کنید که در مقدار تاریخ، ابتدا روز ذکر بشه یا سال. مقدار FirstDay، وجود روز در شروع تاریخ رو بررسی می کنه. مقدار FirstYear، وجود سال در شروع تاریخ رو بررسی می کنه.
    - خاصیت AcceptWithoutZero: این خاصیت مشخص می کنه که آیا پیش از اعداد تک رقمی در قسمت روز و ماه، وجود صفر اختیاری هست یا خیر. به عنوان مثال، آیا علاوه بر عبارت 1387/12/02، عبارت 1387/12/2 نیز صحیح است یا خیر.
    - خاصیت ValidateEmptyText: در مجموعه کنترل های Validator در ASP.NET، فقط کنترل Custom Validator این خاصیت رو داره. این خاصیت مشخص می کنه که آیا کاربر حتماً باید عبارتی رو در کنترل مقصد وارد کنه یا خیر.

    4) این کنترل، بررسی سال کبیسه رو هم انجام میده.

    5) در حال حاضر، این کامپوننت رو به صورت یک dll منتشر کردم. کدهای اون رو احتمالاً! بعد از مدتی منتشر می کنم.

    دوستان عزیز، اگر در رابطه با استفاده از این کنترل به مشکلی برخورد یا باگی مشاهده کردند، در همین تاپیک اعلام بفرمایند.

    موفق باشید.

    پ.ن: آپدیت اول در تاریخ 1387/9/19: اضافه شدن قابلیت درج سال دو رقمی.

    پ.ن: آپدیت دوم در تاریخ 1389/3/17: بر طرف شدن تداخل وجود چند نمونه از کامپوننت در صفحه. و انتشار Source کامپوننت.
    این کامپوننت با VS 2008 و VB.NET نوشته شده است.

    تعداد دانلودهای نسخه ی اول تا تاریخ 17/3/1389 برابر با 1219
    فایل های ضمیمه فایل های ضمیمه
    آخرین ویرایش به وسیله Behrouz_Rad : دوشنبه 17 خرداد 1389 در 22:56 عصر

  2. #2
    کاربر دائمی آواتار mahdi_farhani
    تاریخ عضویت
    مرداد 1383
    محل زندگی
    فولادشهر - اصفهان
    سن
    36
    پست
    1,227

    نقل قول: BehooPersianDateValidator - کامپوننتی برای بررسی صحت تاریخ شمسی در ASP.NET

    با تشکر از زحمت شما
    دومورد بود گفتم بگم بهتره
    1-به علت اینکه ساختار Validator ها دات نت رو داره ، با Ajax مشکل داره ( البته اینو همه میدونن )
    2-اگر تاریخ به صورت 1/1/87 وارد بشه error میده در صورتی که این تاریخ صحیح است

  3. #3

    نقل قول: BehooPersianDateValidator - کامپوننتی برای بررسی صحت تاریخ شمسی در ASP.NET

    نقل قول نوشته شده توسط mahdi_farhani
    1-به علت اینکه ساختار Validator ها دات نت رو داره ، با Ajax مشکل داره ( البته اینو همه میدونن )
    در نظر دارم تا در آینده، رفتار AJAX ای رو واسش ایجاد کنم. حتی بدون اینکه نیاز به UpdatePanel داشته باشید. مثلاً یک خاصیت true یا false که مشخص می کنه آیا رفتار AJAX داشته باشه یا خیر.
    نقل قول نوشته شده توسط mahdi_farhani
    2-اگر تاریخ به صورت 1/1/87 وارد بشه error میده در صورتی که این تاریخ صحیح است
    از عمد این تاریخ رو مجاز در نظر نمی گیرم! به هر حال آینده نگری حکم می کنه که سال به طور کامل وارد بشه. من سال 1487 رو هم در نظر گرفتم ;)
    اگر توجیح داشته باشه، میشه خاصیتی برای تعیین رفتار برای سال دو رقمی رو پیاده سازی کرد.

    موفق باشید.

  4. #4
    کاربر دائمی آواتار mahdi_farhani
    تاریخ عضویت
    مرداد 1383
    محل زندگی
    فولادشهر - اصفهان
    سن
    36
    پست
    1,227

    نقل قول: BehooPersianDateValidator - کامپوننتی برای بررسی صحت تاریخ شمسی در ASP.NET

    برای سال دو رقمی میتونی یک فیلد براش تنظیم کنی که چه دو رقمی را اضافه کنه البته فقط برای دو رقمی ها کنترل بشه. البته این نظر من ، تشخیص با خودتون هست .

  5. #5
    مدیر بخش آواتار salehbagheri
    تاریخ عضویت
    خرداد 1386
    محل زندگی
    In Hearts
    سن
    34
    پست
    2,225

    نقل قول: BehooPersianDateValidator - کامپوننتی برای بررسی صحت تاریخ شمسی در ASP.NET

    خيلي ممنون از شما!

    اگر بتونيد كاري كنيد كه تاريخ رو به صورت فارسي هم بگيره بهتر ميشه!

    مثلا : (16 آذر 1387) يا (شانزده - آذر - هزار و سيصد و هشتاد و هفت)
    امیدم به دستان زیبای اوست . آنکه می آید . همان که نامش منجی ست ....

    به راستی اگر غرق نبودیم چرا مارا به منجی ای نیازمند کرده اند؟ ... دنیا دریاست ....

    دلنوشته های من


  6. #6

    نقل قول: BehooPersianDateValidator - کامپوننتی برای بررسی صحت تاریخ شمسی در ASP.NET

    نقل قول نوشته شده توسط salehbagheri

    اگر بتونيد كاري كنيد كه تاريخ رو به صورت فارسي هم بگيره بهتر ميشه!

    مثلا : (16 آذر 1387) يا (شانزده - آذر - هزار و سيصد و هشتاد و هفت)
    فکر خوبیه. در موردش فکر می کنم.

  7. #7

    نقل قول: BehooPersianDateValidator - کامپوننتی برای بررسی صحت تاریخ شمسی در ASP.NET

    نقل قول نوشته شده توسط Behrouz_Rad مشاهده تاپیک
    در نظر دارم تا در آینده، رفتار AJAX ای رو واسش ایجاد کنم. حتی بدون اینکه نیاز به UpdatePanel داشته باشید. مثلاً یک خاصیت true یا false که مشخص می کنه آیا رفتار AJAX داشته باشه یا خیر.

    از عمد این تاریخ رو مجاز در نظر نمی گیرم! به هر حال آینده نگری حکم می کنه که سال به طور کامل وارد بشه. من سال 1487 رو هم در نظر گرفتم ;)
    اگر توجیح داشته باشه، میشه خاصیتی برای تعیین رفتار برای سال دو رقمی رو پیاده سازی کرد.

    موفق باشید.
    به نظر من هم اگه 1/1/87 رو بگیره بهتره !!!
    ما 2 سال دیگه رو نمی تونیم قطعا بگیم که این کنترل بدرد ما میخوره یا نه !!؟ اونوقت شما 100 سال دیگه رو در نظر گرفتی ؟؟

  8. #8

    نقل قول: BehooPersianDateValidator - کامپوننتی برای بررسی صحت تاریخ شمسی در ASP.NET

    بنا به درخواست دوستان، قابلیت درج سال دو رقمی رو هم به این کامپوننت اضافه کردم.
    نسخه ی جدید رو از پست اصلی دانلود بفرمایید.

  9. #9

    نقل قول: BehooPersianDateValidator - کامپوننتی برای بررسی صحت تاریخ شمسی در ASP.NET

    آقاي راد، اوپن سورسش كن بذار بچه‌ها يه چيزي ياد بگيرن :)

  10. #10

    نقل قول: BehooPersianDateValidator - کامپوننتی برای بررسی صحت تاریخ شمسی در ASP.NET

    نقل قول نوشته شده توسط anubis_ir
    آقاي راد، اوپن سورسش كن بذار بچه‌ها يه چيزي ياد بگيرن :)
    چشم برادر، منتشر می کنم. شما تا حالا دیدی من چیزی منتشر کنم و سورسش رو ندم؟ ما که تا حالا هر چی داشتیم در طبق اخلاص برای دوستان گذاشتیم ;) بعضی ملاحظات در برخی موارد حکم می کنه که سورس در بازه ی زمانی مشخصی بعد از عرضه ی محصول منتشر بشه. این بازه ی زمانی به عوامل مختلفی بستگی داره که تصمیم گیری در مورد این زمان به صاحب محصول برمیگرده :)

    موفق باشید.

  11. #11

    نقل قول: BehooPersianDateValidator - کامپوننتی برای بررسی صحت تاریخ شمسی در ASP.NET

    بالاخره بعد از 2 سال حسی دست داد که دستی روی سر و روی این کامپوننت بکشم. مشکلی که وجود داشت و یکی از دوستان اشاره کرده بود این بود که اگر چند نمونه از این کامپوننت رو بر روی صفحه قرار بدید، تنظیمات اعمال شده به اولین نمونه به بقیه ی نمونه ها نیز نسبت داده میشه. در نسخه ی دوم این کامپوننت این مشکل رو بر طرف کردم و طبق قول داده شده به صورت متن باز اون رو منتشر کردم...
    لطفاً از پست اصلی دانلود بفرمایید.

    موفق باشید.

  12. #12

    نقل قول: BehooPersianDateValidator - کامپوننتی برای بررسی صحت تاریخ شمسی در ASP.NET

    سلام به اساتيد محترم
    اگه لطف كنيد و يه توضيح درباره چگونگي استفاده از اين كامپوننت براي تازه كارهايي مثل من بگيد ممنون ميشم ...

  13. #13

    نقل قول: BehooPersianDateValidator - کامپوننتی برای بررسی صحت تاریخ شمسی در ASP.NET

    نقل قول نوشته شده توسط Morteza_68 مشاهده تاپیک
    سلام به اساتيد محترم
    اگه لطف كنيد و يه توضيح درباره چگونگي استفاده از اين كامپوننت براي تازه كارهايي مثل من بگيد ممنون ميشم ...
    مثالی در مورد نحوه ی استفاده، ضمیمه هست. دقیقاً همانند یک کنترل Validator عمل می کنه.

    موفق باشید.

  14. #14
    کاربر دائمی
    تاریخ عضویت
    اسفند 1384
    محل زندگی
    تهران
    پست
    1,629

    نقل قول: BehooPersianDateValidator - کامپوننتی برای بررسی صحت تاریخ شمسی در ASP.NET

    نقل قول نوشته شده توسط Behrouz_Rad مشاهده تاپیک
    مثالی در مورد نحوه ی استفاده، ضمیمه هست. دقیقاً همانند یک کنترل Validator عمل می کنه.

    موفق باشید.
    سلام
    نخست از نشر سورس برنامه‌تون سپاس‌گزارم.
    من پروژه رو باز کردم بدون هیچ مشکلی اجرا شد. به #C تبدیلش کردم باز هم بدون مشکل
    اجرا شد. ( با یک مبدل کد )
    اما وقتی که پروژه‌ی جدیدی رو از نوع Class Library باز می‌کنم و همون فایل‌ها رو بهش اضافه می‌کنم مشکل داره و نمی‌تونه فایل js. رو بخونه. اشکال کار من کجاس؟
    راستی یادم بوده که build action رو روی Embedded Resource تنظیم کنم. اما یه مشکل
    دیگه باید داشته باشه کارم که درست کامپایل نمی‌شه. و حجم فایل dll من هم کوچیک‌تراز فایلی هست که با برنامه‌ی تبدیل شده ایجاد می‌شه.

    صبا صبوحی

  15. #15
    کاربر دائمی
    تاریخ عضویت
    اسفند 1384
    محل زندگی
    تهران
    پست
    1,629

    نقل قول: BehooPersianDateValidator - کامپوننتی برای بررسی صحت تاریخ شمسی در ASP.NET

    با سلام مجدد
    جناب راد، اگه به پرسش من پاسخ بدهید خیلی سپاس‌گزار می‌شوم.

    صبا صبوحی

  16. #16

    نقل قول: BehooPersianDateValidator - کامپوننتی برای بررسی صحت تاریخ شمسی در ASP.NET

    نقل قول نوشته شده توسط SabaSabouhi مشاهده تاپیک
    با سلام مجدد
    جناب راد، اگه به پرسش من پاسخ بدهید خیلی سپاس‌گزار می‌شوم.

    صبا صبوحی
    سلام.
    نمی دونم.

  17. #17

    نقل قول: BehooPersianDateValidator - کامپوننتی برای بررسی صحت تاریخ شمسی در ASP.NET

    سلام جناب راد

    کدها رو منتشر نمی کنید.
    گفتید که منتشر می کنید و 2 سال گذشت

  18. #18

    نقل قول: BehooPersianDateValidator - کامپوننتی برای بررسی صحت تاریخ شمسی در ASP.NET

    نقل قول نوشته شده توسط Software.Student2010 مشاهده تاپیک
    سلام جناب راد

    کدها رو منتشر نمی کنید.
    گفتید که منتشر می کنید و 2 سال گذشت
    همیشه با دقت یک تاپیک رو مطالعه بفرمایید.
    کدها رو خیلی وقته منتشر کردم. از پست اصلی دانلود بفرمایید.

    موفق باشید.

  19. #19

    نقل قول: BehooPersianDateValidator - کامپوننتی برای بررسی صحت تاریخ شمسی در ASP.NET

    سلام آقای راد
    من از کامپونننت شما استفاده کردم
    در حالت معمولی کار می کرد و ولیدییت می شد
    اما اگر کاربر کلید می کرد و تند تند ثبت رو می زد(تو صفحم دکمه گذاشته بودم)بعد از 20 باز زدن ولیدی شن کار نمی کرد و اطلاعات ثبت می شد!!!!!
    و مجبور شدم برش دارم
    لطفا یک بررسی انجام بدین
    منتظره خبرتون هستم

  20. #20

    نقل قول: BehooPersianDateValidator - کامپوننتی برای بررسی صحت تاریخ شمسی در ASP.NET

    سلام من تا حالا با این جور برنامه ها کار نکردم و نمی دانم اگر بخوام از روی برنامه شما این کنترل را درپروژه خودم استفاده کنم کدوم فایل را باید در برنامه خودم کپی کنم لطفا راهنمایی کنبد

  21. #21

    نقل قول: BehooPersianDateValidator - کامپوننتی برای بررسی صحت تاریخ شمسی در ASP.NET

    مهندس راد، من به یه مشکلی برخوردم.
    از Telerik RadMaskedTextBox استفاده میکنم
    ماسک رو روی
    13##/##/##

    می ذارم. این کامپوننت خروجی پراپرتی Text رو بدون لیترال ها برمیگردونه یعنی خروجی مثل این میشه 800112 اما وقتی با پراپرتی TextWithLiteral می خونی کل رشته رو برمیگردونه مثل 1380/01/12 و همین امر باعث میشه، کامپوننت شما درست اجرا نشه.
    لطف بفرمایین بگین کجای کدتون رو تغییر بدم و آیا براتون مقدوره زحمتش رو بکشین؟

  22. #22

    نقل قول: BehooPersianDateValidator - کامپوننتی برای بررسی صحت تاریخ شمسی در ASP.NET

    جناب مهندس راد. من کد کلاس رو اینطوری تغییر دادم
             Protected Overrides Function EvaluateIsValid() As Boolean

    Dim checkEmptyResult As Boolean = False
    Dim checkFormat As Boolean = False
    Dim checkInRange As Boolean = False
    Dim ControlValue As String = Me.ControlValue

    checkEmptyResult = Me.CheckEmpty(ControlValue)

    If (Me.ValidateEmptyText) Then
    If (checkEmptyResult) Then Return False
    End If

    If (checkEmptyResult = False) Then
    If SmallDate Then
    If ControlValue.Length <> 6 Then Return False
    ControlValue = "13" & ControlValue.Substring(0, 2) & "/" & ControlValue.Substring(2, 2) & "/" & ControlValue.Substring(4, 2)
    End If
    checkFormat = Me.CheckFormat(ControlValue)
    If (checkFormat = False) Then Return False
    End If

    If (checkEmptyResult = False) Then
    checkInRange = Me.CheckInRange(ControlValue)
    If (checkInRange = False) Then Return False
    End If

    Return True

    End Function

    و
        Page.ClientScript.RegisterExpandoAttribute(Me.Clie  ntID, "smalldate", Me.fSmallDate.ToString())

    سپس در فایل اسکریپت این تغییرات رو اعمال کردم
    function smallDate() {
    return gs.smalldate;
    }

    و
    function validatePersianDate(val) {

    gs = val;

    var resultCheckEmpty = false;
    var resultFormat = false;
    var resultInRange = false;
    var value = ValidatorGetValue(val.controltovalidate);

    resultCheckEmpty = checkEmpty(value);

    if (validateEmptyText() == "True") {
    if (resultCheckEmpty == true)
    return false;
    }

    if (resultCheckEmpty == false) {

    if (smallDate() == "True") {
    if (value.length != 6) { alert(value.length); return false; }
    value = "13" + value.substr(0, 2) + "/" + value.substr(2, 2) + "/" + value.substr(4, 2);
    }
    resultFormat = checkFormat(value);
    if (resultFormat == false)
    return false;
    }

    if (resultCheckEmpty == false) {
    resultInRange = checkInRange(value);
    if (resultInRange == false)
    return false;
    }

    return true;
    }


            <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
    <cc1:PersianDateValidator ID="PersianDateValidator1" runat="server"
    FirstWhat="FirstYear" ControlToValidate="TextBox1" Text="*"
    ValidateEmptyText="True" SmallDate="True" ErrorMessage="*"
    EnableClientScript="False" ></cc1:PersianDateValidator>
    <asp:Button ID="Button1" runat="server" Text="Button" />


    الان کنترل همیشه درست کار نمی کنه. یه راه حلی چیزی ؟!
    آخرین ویرایش به وسیله Developer Programmer : یک شنبه 18 اردیبهشت 1390 در 11:10 صبح

  23. #23
    کاربر دائمی
    تاریخ عضویت
    آبان 1385
    محل زندگی
    تهران پر از دود
    پست
    229

    نقل قول: BehooPersianDateValidator - کامپوننتی برای بررسی صحت تاریخ شمسی در ASP.NET

    بهروز جان مر30

    نمیشه یه ماسک براش بذاری دیگه احتیاج به تایپ " / " نباشه ؟

  24. #24

    نقل قول: BehooPersianDateValidator - کامپوننتی برای بررسی صحت تاریخ شمسی در ASP.NET

    سلام می شه لطفا درباره نحوه استفادش بیشتر توضیح بدین؟
    ممنون

برچسب های این تاپیک

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •