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

نام تاپیک: شمارش ردیف های دیتاگرید بصورت شرطی

  1. #1
    کاربر دائمی
    تاریخ عضویت
    مرداد 1392
    محل زندگی
    شیراز-کرمانشاه
    پست
    323

    شمارش ردیف های دیتاگرید بصورت شرطی

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

    for (int i = 0; i < DGVOrganScore.RowCount -1; i++)
    {


    LblAverage.Text = (Convert.ToInt32(DGVOrganScore.Rows[i].Cells["Score"].Value) > 0).ToString();
    }
    آخرین ویرایش به وسیله Mahmoud.Afrad : یک شنبه 18 شهریور 1403 در 04:06 صبح

  2. #2
    کاربر دائمی آواتار shahryari
    تاریخ عضویت
    اسفند 1390
    محل زندگی
    آذربايجان
    سن
    41
    پست
    1,244

    نقل قول: شمارش ردیف های دیتاگرید بصورت شرطی

    LblAverage.Text = (Convert.ToInt32(DGVOrganScore.Rows[i].Cells["Score"].Value) > 0).ToString();
    سلام آخه اینجوری نمیشه که ، همیشه آخرین مورد رو نشون میده

    حداقل اینجوری بنویس تست کن

    LblAverage.Text += "(" + (Convert.ToInt32(DGVOrganScore.Rows[i].Cells["Score"].Value) > 0).ToString() + ") ";

  3. #3
    کاربر دائمی آواتار ROSTAM2
    تاریخ عضویت
    اسفند 1390
    محل زندگی
    فارس
    پست
    1,832

    نقل قول: شمارش ردیف های دیتاگرید بصورت شرطی

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

    for (int i = 0; i < DGVOrganScore.RowCount -1; i++)
    {


    LblAverage.Text = (Convert.ToInt32(DGVOrganScore.Rows[i].Cells["Score"].Value) > 0).ToString();
    }
    سلام

    شما می خوای جمع عدد توی هر خونه رو داشته باشی !! پس اون >0 اونجا چی می گه؟!؟؟!

  4. #4
    کاربر دائمی
    تاریخ عضویت
    مرداد 1392
    محل زندگی
    شیراز-کرمانشاه
    پست
    323

    نقل قول: شمارش ردیف های دیتاگرید بصورت شرطی

    نقل قول نوشته شده توسط ROSTAM2 مشاهده تاپیک
    سلام

    شما می خوای جمع عدد توی هر خونه رو داشته باشی !! پس اون >0 اونجا چی می گه؟!؟؟!
    نه اصلا جمع نمیخوام
    من دنبال count هستم
    میخوام توی دیتاگرید ویو بدونم ردیفهایی که بزرگتر از صفر هستن چندتا هستن؟

  5. #5

    نقل قول: شمارش ردیف های دیتاگرید بصورت شرطی

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

    for (int i = 0; i < DGVOrganScore.RowCount -1; i++)
    {


    LblAverage.Text = (Convert.ToInt32(DGVOrganScore.Rows[i].Cells["Score"].Value) > 0).ToString();
    }
    منطق کدی که نوشتی با چیزی که میخواهی اصلا همخوانی نداره.

    خودت اگر بخواهی بشماری چطور عمل میکنی؟! همونو کد کن

  6. #6
    کاربر دائمی آواتار ShayanFiroozi
    تاریخ عضویت
    شهریور 1397
    محل زندگی
    بندرعباس ، خلیج همیشه فارس
    سن
    38
    پست
    225

    Lightbulb نقل قول: شمارش ردیف های دیتاگرید بصورت شرطی

    سلام

    در رویداد CellFormatting دیتاگرید کد بنویسید :

    حلقه For هم نیازی نیست !


    if (Convert.ToInt32(DGVOrganScore.Rows[e.RowIndex].Cells["Score"].Value) > 0)
    {
    DGVOrganScore.Rows[e.RowIndex].Cells[e.ColumnIndex].Style.ForeColor= Color.FromArgb(0, 255, 0); // Make the Positive score green ;)
    }



    برای تعداد Score های بالای صفر هم در رویداد RowsAdded میتونی محاسبه کنی ( اصولش این بود که در رویداد DataBindingComplete بنویسی ولی چون شما به جایی Bind نیستی نمیشه)

    در رویداد RowAdded میتونی یه متغییر int که در Scope بیرون از رویداد تعریف شده رو Increase کنی.



    if (Convert.ToInt32(DGVOrganScore.Rows[e.RowIndex].Cells["Score"].Value) > 0)
    {
    PositiveScoresCounter++;
    }

    آخرین ویرایش به وسیله ShayanFiroozi : یک شنبه 01 مهر 1403 در 00:31 صبح

  7. #7
    کاربر دائمی آواتار mazoolagh
    تاریخ عضویت
    اردیبهشت 1384
    سن
    72
    پست
    3,312

    نقل قول: شمارش ردیف های دیتاگرید بصورت شرطی

    نقل قول نوشته شده توسط ShayanFiroozi مشاهده تاپیک
    سلام

    حلقه For هم نیازی نیست !

    برای تعداد Score های بالای صفر هم در رویداد RowsAdded میتونی محاسبه کنی
    در رویداد RowAdded میتونی یه متغییر int که در Scope بیرون از رویداد تعریف شده رو Increase کنی.


    if (Convert.ToInt32(DGVOrganScore.Rows[e.RowIndex].Cells["Score"].Value) > 0)
    {
    PositiveScoresCounter++;
    }

    سلام و روز خوش
    این کد شما اشکال داره!

    یکی این که رخداد rowsadded وقتی اجرا میشه که یک row به دیتاگرید اضافه بشه،
    حتی پیش از cellbeginedit ،
    یعنی در اون موقع هنوز هیچ مقداری واسه سلول ها مشخص نیست،
    پس اون if هیچوقت true نمیشه چون همیشه مقداراون سلول (و همچنین بقیه سلول ها) null هست.

    مورد دیگه این هست که کاربر ممکنه بعدا اون row رو پاک کنه،
    یا مقدار اون سلول مورد نظر رو ویرایش کنه جوری که در شمارش موثر باشه،
    که خب با این کد قابل تشخیص نیست.

    شما نمیتونین بدون لوپ اینو انجام بدین،
    مگر این که در cellbeginedit مقدار سلول رو یه جایی نگهدارین
    و در cellendedit مقایسه کنین
    و تازه حواستون به nullها هم باشه.

    خلاصه این که ساده ترین و مطمئنترین راه همون حلقه ساده است،
    کافی هست در رویداد cellvaluechanged و همچنین rowsremoved انجام بشه.

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

  1. سوال: دانلود دیتا از سایت به صورت لایو و پردازش دیتاهای دانلود شده
    نوشته شده توسط amin2014 در بخش توسعه وب (Web Development)
    پاسخ: 3
    آخرین پست: جمعه 08 بهمن 1395, 14:57 عصر
  2. پاسخ: 7
    آخرین پست: شنبه 30 آذر 1392, 16:50 عصر
  3. پاسخ: 5
    آخرین پست: یک شنبه 17 آذر 1392, 22:46 عصر
  4. نمایش تکست به صورت 50,200 و ذخیره در دیتابیس به صورت 500200
    نوشته شده توسط phpeproject.ir در بخش C#‎‎
    پاسخ: 3
    آخرین پست: سه شنبه 11 تیر 1392, 14:06 عصر
  5. پاسخ: 10
    آخرین پست: پنج شنبه 09 اردیبهشت 1389, 13:50 عصر

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

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