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

نام تاپیک: استفاده از errorProvider در تمام textbox ها

  1. #1

    استفاده از errorProvider در تمام textbox ها

    من میخوام توی فرمم روی تمام textbox ها validation داشته باشه .
    برای اینکار باید در رویداد textchanged تمام تکست باکسهام از ارورپروایدر استفاده کنم یا در رویداد validating تکست باکس رو بررسی کنم ؟
    در اینصورت با وجود تکست باکسهای زیاد خیلی برنامه ام شلوغ و بهم ریخته میشه و یه عالمه کد باید بنویسم برای چک کردن ورودی فیلدها !
    راه دیگه ای نیست ؟
    اگه یه نمونه آماده برای چک کردن تکست باکسها (که خالی نباشن ، فقط عدد با تعداد یا فرمت مشخص یا فقط حروف باشن یا چکهتی دیگه با استفاده از regular expression ) دارید خیلی ممنون میشم برای دانلود بزارید
    آخرین ویرایش به وسیله SamStar : چهارشنبه 23 اسفند 1391 در 22:47 عصر

  2. #2
    کاربر دائمی
    تاریخ عضویت
    تیر 1389
    محل زندگی
    به جبر روزگار تهران هستم.
    پست
    2,718

    نقل قول: استفاده از errorProvider در تمام textbox ها

    سلام. فقط یک error provider نیاز دارید.
    اینو ببین (با یک تغییر کوچیک میتونید همزمان روی تمام کنترل ها، error provider بارونش! کنی) :
     if (string.IsNullOrWhiteSpace(TxtYearExam.Text))
    errorProvider1.SetError(TxtYearExam, "سال تحصیلی بایستی مشخص باشد");
    else if (string.IsNullOrWhiteSpace(TxtTerm.Text))
    errorProvider1.SetError(TxtTerm, "ترم تحصیلی بایستی مشخص باشد");
    else if (string.IsNullOrWhiteSpace(CmbGroup.Text))
    errorProvider1.SetError(CmbGroup, "گروه آموزشی بایستی مشخص باشد");

  3. #3

    نقل قول: استفاده از errorProvider در تمام textbox ها

    ممنون اما این کد فقط خالی نبودن فیلدها رو چک میکنه
    اما من همونطور که گفتم میخوام مثلا برای تکست باکس کدملی چک کنه 10 رقم باشه برای تلفن 7-8 رقم و فقط عدد برای نام فقط حروف برای ایمیل فرمت مشخص و الی آخر
    فکر میکنم تنها راهش همین باشه که پشت رویداد textchanged تمام تکست باکسها کد مربوطه رو بنویسم . نه ؟
    برای اون textbox هایی که validation هاشون مثل هم هستن چی ؟ نمیشه یه کاری کرد که کدها کوتاه تر بشن ؟

  4. #4
    کاربر دائمی
    تاریخ عضویت
    تیر 1389
    محل زندگی
    به جبر روزگار تهران هستم.
    پست
    2,718

    نقل قول: استفاده از errorProvider در تمام textbox ها

     if (string.IsNullOrWhiteSpace(TxtMeliCode.Text) || TxtMeliCode.Text.Length != 10)
    errorProvider1.SetError(TxtMeliCode, "کد ملی را بصورت یک عدد 10 رقمی وارد نمایید");
    else if (string.IsNullOrWhiteSpace(TxtPhone.Text) || TxtPhone.Text.Length != 11)
    errorProvider1.SetError(TxtPhone, "شماره تلفن یک عدد 11 رقمی می باشد");

  5. #5

    نقل قول: استفاده از errorProvider در تمام textbox ها

    ممنون .
    میشه یک مثال هم بزنید که چطور میشه regularexpression ها رو هم خلاصه کرد ؟

    یه سوال دیگه :
    من این کدها رو در ایونت کلیک دکمه ثبت اطلاعات نوشتم . با اینکه ارورپروایدر ارور میده ولی بازم ثبت اطلاعات صورت میگیره . چطور میتونیم کاری کنیم که تا اطلاعات درست وارد نشده ثبت صورت نگیره ؟

  6. #6

    نقل قول: استفاده از errorProvider در تمام textbox ها

    ???

  7. #7
    کاربر دائمی
    تاریخ عضویت
    تیر 1389
    محل زندگی
    به جبر روزگار تهران هستم.
    پست
    2,718

    نقل قول: استفاده از errorProvider در تمام textbox ها

    نقل قول نوشته شده توسط SamStar مشاهده تاپیک
    ممنون .
    میشه یک مثال هم بزنید که چطور میشه regularexpression ها رو هم خلاصه کرد ؟
    اگه منظورتون مثلا وارد کردن فقط عدد یا وازد کردن فقط حروف فارسی هست قبلا بارها بحث شده. جستجو کنید.
    من این کدها رو در ایونت کلیک دکمه ثبت اطلاعات نوشتم . با اینکه ارورپروایدر ارور میده ولی بازم ثبت اطلاعات صورت میگیره . چطور میتونیم کاری کنیم که تا اطلاعات درست وارد نشده ثبت صورت نگیره ؟
    این برمیگرده به مدیریت کردن if و else . کدت رو بزار.

  8. #8

    نقل قول: استفاده از errorProvider در تمام textbox ها

    این رویداد کلیک دکمه ثبت اطلاعات است که بعد از try/catch بررسی اطلاعات وارد شده در تکست باکسها رو انجام میده (البته این قسمت رو هنوز تکمیل نکردم و فعلا فقط کدهای شما رو برای تست گذاشتم :
    باید if /else بزارم که وقتی errorprovider خطا میگیره عملیات انجام نشه ؟


    private void button1_Click(object sender, EventArgs e)
    {
    try
    {
    BLL objBLL = new BLL();
    string Values = "('" + txtName.Text + "','" + txtFamily.Text + "','"
    + txtTel.Text + "')";
    objBLL.Insert(Values);
    lblconfirm.Visible = true;


    }
    catch
    {
    lblconfirm.Text = "بروز خطا در سیستم";
    lblconfirm.Visible = true;
    }

    ErrorProvider ep = new ErrorProvider();
    if (string.IsNullOrEmpty(txtName.Text))
    ep.SetError(txtName, "نمیتواند خالی باشد");
    else
    ep.SetError(txtName, "");

    if (string.IsNullOrEmpty(txtName.Text))
    errorProvider1.SetError(txtName, "سال تحصیلی بایستی مشخص باشد");
    else if (string.IsNullOrEmpty(txtFamily.Text))
    errorProvider1.SetError(txtFamily, "ترم تحصیلی بایستی مشخص باشد");
    else if (string.IsNullOrEmpty(txtTel.Text))
    errorProvider1.SetError(txtTel, "گروه آموزشی بایستی مشخص باشد");


    if (string.IsNullOrEmpty(txtcode.Text) || txtcode.Text.Length != 10)
    {
    errorProvider1.SetError(txtcode, "کد ملی را بصورت یک عدد 10 رقمی وارد نمایید");


    }
    else if (string.IsNullOrEmpty(txtTel.Text) || txtTel.Text.Length != 11)
    errorProvider1.SetError(txtTel, "شماره تلفن یک عدد 11 رقمی می باشد");

    }


    این هم رویداد ontextchange یکی از تکست باکسهام با regularexpression هستش که بقیه تکست باکسها هم مثل همین کد رو پشت رویداد تکست چنج دارن:


    private void txtemail_TextChanged(object sender, EventArgs e)
    {

    Regex rgx;
    rgx = new Regex(@"^\S+@\S+\.\S+$");
    Control ctrl = (Control)sender;
    if (rgx.IsMatch(ctrl.Text))
    {
    errorProvider1.SetError(ctrl, "");
    }
    else
    {
    errorProvider1.SetError(ctrl, "ایمیل نامعتبر");
    }
    }

  9. #9
    کاربر دائمی
    تاریخ عضویت
    تیر 1389
    محل زندگی
    به جبر روزگار تهران هستم.
    پست
    2,718

    نقل قول: استفاده از errorProvider در تمام textbox ها

    شما اول درج میکنی بعد چک میکنی؟.
    شما ساده ترین مسائل رو هم در برنامه رعایت نمیکنی دوست عزیز.
    موفق باشید.

  10. #10
    کاربر دائمی آواتار khokhan
    تاریخ عضویت
    دی 1388
    محل زندگی
    اسکو
    پست
    2,176

    نقل قول: استفاده از errorProvider در تمام textbox ها

    سلام به همه

    من معمولا از این شیوه استفاده می کنم
    فایل های ضمیمه فایل های ضمیمه

  11. #11

    نقل قول: استفاده از errorProvider در تمام textbox ها

    نقل قول نوشته شده توسط veniz2008 مشاهده تاپیک
    شما اول درج میکنی بعد چک میکنی؟.
    شما ساده ترین مسائل رو هم در برنامه رعایت نمیکنی دوست عزیز.
    موفق باشید.
    متوجه منظورتون نمیشم !
    یعنی چی درج میکنی بعد چک میکنی ؟ کدها رو گذاشتم سرجاشون ولی هنوز فرصت نکردم طبق تکست باکسهام تنظیمشون کنم . این چه اشکالی داره ؟

    ضمنا ما اینجا هستیم که چیزهای جدید یادبگیریم و برنامه نویسی مون رو پیشرفت بدیم . حالا هرکس درسطح خودش .
    پس اگه مشکلی درکارم می بینید لطفا کمک کنید که رفع بشه نه با لحنی که حالت طعنه داره !

  12. #12
    کاربر تازه وارد
    تاریخ عضویت
    آبان 1391
    محل زندگی
    West Azarbaijan, Urmia
    پست
    71

    نقل قول: استفاده از errorProvider در تمام textbox ها

    سلام

    دوسمون هم اشاره کردن قبل از اینکه قسمت Try رو اجرا بکنید باید ورودی هایی رو که کاربر وارد میکنه رو بررسی بکنید. یعنی اول ورودی ها رو چک کنید اگر اطلاعاتی که کابر وارد کرده درست باشن قسمت Try اجرا بشه و داده ها ذخیره بشن. در غیر اینصورت برنامه از اجرای قسمت Try صرف نظر کنه.

    بهتره برای اینکار یک تابع بنویسید که اطلاعات وارد شده توسط کاربر رو چک بکنه، اگه داده ها درست بودن مقدار true و در غیر اینصورت false رو برگردونه.


    private bool CheckInputFields()
    {
    ErrorProvider ep = new ErrorProvider();

    if (string.IsNullOrEmpty(txtName.Text))
    {
    ep.SetError(txtName, "نمیتواند خالی باشد");
    return false;
    }
    else
    ep.SetError(txtName, "");

    if (string.IsNullOrEmpty(txtName.Text))
    {
    errorProvider1.SetError(txtName, "سال تحصیلی بایستی مشخص باشد");
    return false;
    }
    else
    errorProvider1.SetError(txtName, "");

    if (string.IsNullOrEmpty(txtFamily.Text))
    {
    errorProvider1.SetError(txtFamily, "ترم تحصیلی بایستی مشخص باشد");
    return false;
    }
    else
    errorProvider1.SetError(txtFamily, "");

    if (string.IsNullOrEmpty(txtTel.Text))
    {
    errorProvider1.SetError(txtTel, "گروه آموزشی بایستی مشخص باشد");
    return false;
    }
    else
    errorProvider1.SetError(txtTel, "");

    if (string.IsNullOrEmpty(txtcode.Text) || txtcode.Text.Length != 10)
    {
    errorProvider1.SetError(txtcode, "کد ملی را بصورت یک عدد 10 رقمی وارد نمایید");
    return false;
    }
    else
    errorProvider1.SetError(txtcode, "");

    if (string.IsNullOrEmpty(txtTel.Text) || txtTel.Text.Length != 11)
    {
    errorProvider1.SetError(txtTel, "شماره تلفن یک عدد 11 رقمی می باشد");
    return false;
    }
    else
    errorProvider1.SetError(txtTel, "");

    Regex rgx;
    rgx = new Regex(@"^\S+@\S+\.\S+$");
    if (!rgx.IsMatch(txtemail.Text))
    {
    errorProvider1.SetError(txtemail, "ایمیل نامعتبر");
    return false;
    }
    else
    errorProvider1.SetError(txtemail, "");

    return true;
    }



    حالا داخل رویداد کلیک button1 تابع بالا رو فراخوانی میکنید


    private void button1_Click(object sender, EventArgs e)
    {
    if (!CheckInputFields())
    return;

    try
    {
    BLL objBLL = new BLL();
    string Values = "('" + txtName.Text + "','" + txtFamily.Text + "','"
    + txtTel.Text + "')";
    objBLL.Insert(Values);
    lblconfirm.Visible = true;
    }
    catch
    {
    lblconfirm.Text = "بروز خطا در سیستم";
    lblconfirm.Visible = true;
    }
    }



    توی رویداد بالا اگه مقدارشرط که اول رویداد هست true باشه بقیه کدها اجرا میشن (یعنی قسمت try)
    و اگه مقدار false باشه با دستور return کامپایلر از اجرای کدهای بعدی در این تابع خود داری میکنه و از تابع خارج میشه.

    موفق باشید

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

  1. سوال: استفاده از یک کنترل (مثلا textbox) در تمام صفحات وب
    نوشته شده توسط kamran_14 در بخش ASP.NET Web Forms
    پاسخ: 1
    آخرین پست: سه شنبه 14 دی 1389, 20:24 عصر
  2. سوال: نوشتن یک کد و استفاده از آن در تمام اجزای برنامه
    نوشته شده توسط bugattis در بخش برنامه نویسی در 6 VB
    پاسخ: 8
    آخرین پست: شنبه 18 مهر 1388, 19:03 عصر
  3. استفاده از Time در تمام فرم ها
    نوشته شده توسط manzare در بخش مباحث عمومی دلفی و پاسکال
    پاسخ: 3
    آخرین پست: شنبه 09 شهریور 1387, 13:31 عصر
  4. << استفاده از کلید Tab در TextBox >>
    نوشته شده توسط AspNet در بخش ASP.NET Web Forms
    پاسخ: 5
    آخرین پست: جمعه 21 مرداد 1384, 23:16 عصر
  5. استفاده از متغیرهایSession در تمام WebApplicationهای ASP.Net
    نوشته شده توسط Barbababak در بخش ASP.NET Web Forms
    پاسخ: 9
    آخرین پست: یک شنبه 02 اسفند 1383, 01:01 صبح

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

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