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

نام تاپیک: تعیین محدودیت با Custome Validation

  1. #1

    تعیین محدودیت با Custome Validation

    چه جوری میشه با Custome Validation برای یه Text BOX چند تا رنج عددی مثلا 0-5 و 10-15 و 20 -25 رو تعیین کرد که کاربر فقط تو این رنجها بتونه عدد وارد کنه اگه غیر این وارد کرد پیغام خطا بده!!!!!!!!!

  2. #2
    سوالم تا حالا واسه کسی پیش نیومده ؟؟؟

    تو Rane Validator خاصیتهای Manvalue و Minvalue داریم که فقط می تونیم حداکثر و حداقل مقدار ورودی رو برای کنترل (Text Box ) تعیین کنیم ولی اگه مثل این چیزی که من گفتم
    چند تا بازه عددی داشته باشیم که فقط تو اون بازه ها کاربر باید مقدار وارد کنه این محدودیت رو با Custome Validation چه جوردی اعمال می کنیم ؟؟؟؟

  3. #3
    منتظر تایید آدرس ایمیل
    تاریخ عضویت
    آذر 1384
    محل زندگی
    همدان
    پست
    336
    باید از RegularExpressionValidator استفاده کنید
    سعی کنید خودتون Expression رو بنویسید چون بعدا به کارتون میاد
    اگه نشد.بگین من یا دوستان براتون مینویسیم

  4. #4
    اگر اشتباه نکنم میتونین از چند تا validatorاستفاده کنین

    ضمنا استفاده از همان Regular expression ها هم خیلی خوب است

    اگر هم حل نشد ==> راه حل نهایی ==> Custome Validator

  5. #5
    والا من همین قد بلدم که تو Experssion با استفاده از

    \d{min,max}


    میشه تعداد کاراکتر های ورودی رو تعیین کرد.

  6. #6
    منتظر تایید آدرس ایمیل
    تاریخ عضویت
    آذر 1384
    محل زندگی
    همدان
    پست
    336
    خوب جواب هم همینه،بینشون هم یا بزاری همون چیزی میشه که میخوای

  7. #7
    مهندس جون نمی خوام تعداد کاراکتر های ورودی رو تعیین کنم می خوام مقدار ورودی کاربر

    تو چند تا رنج خاص مجاز باشه !!

    تعداد کاراکتر های ورودی <> مقدار ورودی

  8. #8
    باید از RegularExpressionValidator استفاده کنی!
    در اینجا نیاز به نوشتن یک عبارت منطقی سفارشی داری که مطمئنا باید با زبان RegularExpression آشنایی داشته باشی.
    این زبان کمی پیچیده است و نیاز به تمرین و دقت داره.
    این مورد رو طبق شرط هایی که خواسته بودی من واست نوشتم.
    خاصیت ValidationExpression کنترل RegularExpressionValidator رو برابر با عبارت زیر قرار بده:

    /^([0-5]|[1-1][0-5]|[2-2][0-5])$/

    مطالعه و آشنایی هر چه بیشتر شما با عبارات منطقی، مطمئنا در درک بهتر کد فوق تاثیر گذار خواهد بود.

    موفق باشید.

  9. #9
    دستت درد نکنه . خیلی ممنون

    نوشتن ValidationExperssion رو چه جوری باید تمرین کنم ؟؟

    Syntax نوشتن رو واسه حالتهای مختلف از کجا گیر بیارم ؟؟

  10. #10
    eBook های مختلفی برای RegularExpression وجود داره.
    Search About It

    موفق باشی.

  11. #11
    مهندس با عرض شرمندگی

    مثل اینکه یه مشکلی تو این فرمول وجود داره

    شما در نظر بگیر بازه ما از 28 تا 34 باشه. طبق این روش بایداین کد رو تو Validation Expression بنویسیم :

       /^([2-3][8-4])$/   


    ولی این یه مقدار InValid حساب میاد .

    تو بازه ای که برای کاراکتر دوم ورودی در نظر می گیریم بازه [4-8] چه جوری تفسیر میشه که باعث خطا میشه ؟؟

  12. #12
    عرض کردم که نکات فراوانی در Regular Expressions وجود داره که با تجربه و تمرین به دست میاد.
    در Regular Expressions، یک بازه ی شروع که در یک براکت قرار میگیره نمیتونه از بازه ی پایانی کوچکتر باشه.
    به عنوان مثال، برای تعیین بازه ی بین 4 تا 8، سینتکس زیر صحیح نیست:

    /^([8-4])$/

    اما سینتکس زیر صحیح هست:

    /^([4-8])$/

    در بازه ی 28 تا 34، براکت دوم به شکل [4-8] هست که درست نیست و همین باعث بُروز مشکل میشه.
    باید به شکلی عمل کنی که این حالت رخ نده.
    مثلا من به شکل زیر این کار رو انجام دادم:

    /^(2[8-9]|3[0-4])$/

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

    موفق باشید.

  13. #13
    دستتون درد نکنه مرسی

    اگر بازه ما 2582 تا 3722 باشه و ما مقدار 3720 رو وارد کنیم با این که داخل بازه هستش ولی

    پیغام خطا دریافت می کنیم !!!!!

  14. #14
    اگر به توضیحات قبلی دقت کرده بودی، به راحتی میتونستی این فرم رو هم بنویسی.
    به شکل ذیل بنویس:

    /^(25[8-9][2-9]|26[0-9][0-9]|27[0-9][0-9]|28[0-9][0-9]|29[0-9][0-9]|30[0-9][0-9]|31[0-9][0-9]|32[0-9][0-9]|33[0-9][0-9]|34[0-9][0-9]|35[0-9][0-9]|36[0-9][0-9]|37[0-2][0-2])$/

    موارد بعدی رو سعی کن خودت بنویسی.

    موفق باشید.
    آخرین ویرایش به وسیله Behrouz_Rad : جمعه 22 تیر 1386 در 11:05 صبح

  15. #15
    بحث تازه داره جالب میشه
    دستوری که شما نوشتین رو من اینجوری تفسیر می کنم . اگه جایی اشتباه می کنم تذکر بدید
    رقم اول باید 2 یا 3 باشد

    اگر رقم اول 2 بود :
    رقم دوم باید بزرگترمساوی با 5 باشد.
    رقم سوم باید بزرگترمساوی با 8 باشد .
    رقم چهارم باید بزرگترمساوی با 2 باشد

    بحث من سر دو مورد آخره !!
    . عدی که وارد می کنیم میتونه رقم سومش کوچکتر از 8 و رقم چهارمش کوچکتر از 2 باشه !!!
    یه مثال عدد 2600 رو در نظر میگیریم . تو بازه قرار داره و رقم سومش کوچکتر از 8 و رقم چهارمش کوچکتر از 2 هست

    اگه وارد بشه پیغام خطا می گیریم !!

    پس اگر رقم اول 2 بود باید حتما برای رقمهای سوم و چهارم بازه [9-0] رو در نظر بگیریم و اما مشکل میشه رقم دوم .

    اگه همون بازه [9-5] رو در نظر بگیریم کاربر میتونه از 2500 تا 2581 رو هم وارد کنه که نباید بتونه :دی

    حالا اگه بخوایم بازه 2500 تا 2581 رو از بازه 2500 تا 2599 خارج کنیم چه کار می کنیم ؟؟؟؟

  16. #16
    کد پست قبلی رو تصحیح کردم.
    از این سینتکس جدید استفاده کن.

  17. #17
    من هر چی سنگ میندازم خلاصه یه چیزی رو می کنی : دی

    دستت درد نکنه . از پیگیری شما ممنونم

    مهندس جون اگه ممکنه راه حل جدید رو تو یه پست جدید بنویسین چون کسانی که

    این تاپیک رو دنبال می کنن بدونن که پست قبلی رو من واسه چی نوشتم !

    یه سوال کلی تر :

    اگه بازه ما خیلی بزرگتر از این حرفها بود مثلا از یه عدد دو رقمی تا یه عدد شش رقمی .

    اونوقت بازم دستی بازه ها رو تعریف کنیم ؟

  18. #18
    یک Regular Expression رو میشه به شکل های مختلف نوشت.
    افرادی که رشته ی کامپیوتر هستند درسی به نام نظریه زبان ها دارند که ذهن اونها رو برای عبارات باقاعده تقویت میکنه...
    میشه کارهای زیباتری انجام داد.
    فرض کن من قصد دارم تا بازه ی بین اعداد 25 تا 6847 رو به عنوان محدوده ی مجاز تعیین کنم.
    کاری که میشه انجام داد اینه که برای دهگان، هزارگان و ... محدوده ها رو به شکل مجزا تعیین کرد.
    اگر به این روش عمل کنیم، اعدادی که برای ما مزاحمت ایجاد میکنن، اعداد محدوده ی 6000 تا 6847 هستند.
    پس برای این اعداد محدوده رو به شکل مجزا تعیین میکنیم.
    گفته های فوق رو در قالب سینتکس زیر میبینی:

    /^([2-9][5-9]|[1-9][0-9][0-9]|[1-5][0-9][0-9][0-9]|6[0-8][0-4][0-7])$/


    موفق باشید.

  19. #19
    از توضیحات کامل شما تشکر می کنم .

    البته یه چیزی یادم اومد بگم
    واسه یه بازه همون Range Validator کارمون رو راه میندازه .

    اگر چند تا بازه داشتیم که تعداد رقمهای حد پایین با تعداد رقمهای حد بالای بازه ها یکی نبودن از این روش استفاده می کنیم .

تاپیک های مشابه

  1. ساختن exe برنامه و تعیین آیکون آن
    نوشته شده توسط dorna1985 در بخش C#‎‎
    پاسخ: 5
    آخرین پست: سه شنبه 09 بهمن 1386, 11:52 صبح
  2. تعیین ایکون برای برنامه
    نوشته شده توسط soheil-vb6 در بخش برنامه نویسی در 6 VB
    پاسخ: 12
    آخرین پست: پنج شنبه 27 دی 1386, 19:37 عصر
  3. obtain custome properties
    نوشته شده توسط Farhad.B.S در بخش ASP.NET Web Forms
    پاسخ: 2
    آخرین پست: جمعه 30 آبان 1382, 11:08 صبح

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

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