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

نام تاپیک: گرفتن مقادیر ثبت شده در LinkedList

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

    گرفتن مقادیر ثبت شده در LinkedList

    سلام و خسته نباشید

    یک فرم دارم که نزدیک 200 تا چک باکس داره و با استفاده از Telerik RadPageView اونا رو تقسیم بندی کردم و در GroupBox های مختلف قراردادم

    CheckBox , GroupBox , RadPageView همگی از جنس Telerik هستند .


    برای هر چک باکس یه مقدار منحصر بفرد در نظر گرفتم . که اون رو در خاصیت Tag قراردادم . زمان طراحی . 1 و 2 و3 و4 و ... تا 200

    یه رویداد نوشتم و با چک خوردن هر چک باکس مقدار Tag اش در یک LinkedList ذخیره میشه و در نهایت در DataBase ذخیره میشه

    موضوع اینه که برای Select کردنش و نمایش چک باکس های تیک خورده مشکل دارم . برای همین یک DataSet گرفتم و بعدش مقادیرش رو به LinkedList انتقال دادم . اما نمی تونم مقایسه کنم که اگه مقداری در LinkedList بود و همه چک باکس ها رو چک کردن اگه مقدار برابری بود اون CheckBox رو تیک بزن

    if (ds.Tables[0].Rows.Count > 0)
    {
    int a = ds.Tables[0].Rows.Count;

    for (int i = 0; i < a; i++)
    {
    lines2.AddLast(ds.Tables[0].Rows[i]["Tags"].ToString());
    }

    System.Windows.Forms.Control.ControlCollection PanelControls = radPageViewPage1.Controls;
    if (PanelControls != null)
    {
    foreach (Control Item in PanelControls)
    {
    if (Item.GetType() == typeof(Telerik.WinControls.UI.RadGroupBox))
    {
    System.Windows.Forms.Control.ControlCollection GroupControls = Item.Controls;
    if (GroupControls != null)
    {
    foreach (Control ItemCheck in GroupControls)
    {
    if (ItemCheck.GetType() == typeof(Telerik.WinControls.UI.RadCheckBox))
    {
    if (ItemCheck.Tag == lines2.Find(ItemCheck.Tag.ToString()))
    {
    ((Telerik.WinControls.UI.RadCheckBox)ItemCheck).Ch ecked = true;
    }
    }
    }
    }
    }
    }
    }
    }

    همه چیز داره درست کار می کنه و فقط مشکلم با قسمت اخرش هست .
    آخرین ویرایش به وسیله Mahmoud.Afrad : جمعه 29 تیر 1397 در 04:49 صبح

  2. #2

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

    شرطی که در خط 24 نوشته اید اشتباه هست.
    از متد contains میتوانید استفاده کنید
                foreach (Control item in radPageViewPage1.Controls)
    {
    var box = item as RadGroupBox;
    if (box == null) continue;
    foreach (Control itemCheck in item.Controls)
    {
    var checkBox = itemCheck as RadCheckBox;
    if (checkBox == null) continue;
    if (!lines2.Contains(checkBox.Tag.ToString())) continue;
    checkBox.Checked = true;
    }
    }

  3. #3
    کاربر دائمی
    تاریخ عضویت
    تیر 1390
    محل زندگی
    کرمانشاه
    پست
    1,487

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

    نقل قول نوشته شده توسط Mahmoud.Afrad مشاهده تاپیک
    شرطی که در خط 24 نوشته اید اشتباه هست.
    از متد contains میتوانید استفاده کنید
                foreach (Control item in radPageViewPage1.Controls)
    {
    var box = item as RadGroupBox;
    if (box == null) continue;
    foreach (Control itemCheck in item.Controls)
    {
    var checkBox = itemCheck as RadCheckBox;
    if (checkBox == null) continue;
    if (!lines2.Contains(checkBox.Tag.ToString())) continue;
    checkBox.Checked = true;
    }
    }

    سپاس فراوان . خیلی خوب کار کرد .

    حالا یه سوال دارم . من چندتا از این RadPageView ها دارم . نزدیک 13 تا . الان باید 13 بار این حلقه رو بنویسم و توی هر کدام اندیس بهشون بدم ؟

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

  4. #4

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

    نقل قول نوشته شده توسط NasimBamdad مشاهده تاپیک
    سپاس فراوان . خیلی خوب کار کرد .

    حالا یه سوال دارم . من چندتا از این RadPageView ها دارم . نزدیک 13 تا . الان باید 13 بار این حلقه رو بنویسم و توی هر کدام اندیس بهشون بدم ؟

    یا میشه با همچنین کردی اونا رو هم پوشش داد و کد تکراری ننویسم
    13 تا Page یا RadPageView ؟

    اگر 13تا page در یک RadPageView دارید روی پراپرتی Pages با یک حلقه پیمایش کنید.

  5. #5
    کاربر دائمی
    تاریخ عضویت
    تیر 1390
    محل زندگی
    کرمانشاه
    پست
    1,487

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

    اینطوری شد

    foreach (Control item in radPageView1.Controls)
    {
    var page = item as Telerik.WinControls.UI.RadPageViewPage;
    if (page == null) continue;

    foreach (Control pgw in page.Controls)
    {
    var box = pgw as Telerik.WinControls.UI.RadGroupBox;
    if (box == null) continue;

    foreach (Control itemCheck in box.Controls)
    {
    var checkBox = itemCheck as Telerik.WinControls.UI.RadCheckBox;
    if (checkBox == null) continue;

    if (linesCH.Contains(checkBox.Tag.ToString()))
    {
    checkBox.Checked = true;
    }
    else
    {
    checkBox.Checked = false;
    }
    }
    }
    }
    آخرین ویرایش به وسیله Mahmoud.Afrad : جمعه 29 تیر 1397 در 15:58 عصر دلیل: عدم استفاده از تگ مناسب برای کدها؛

  6. #6

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

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

    foreach (Control item in radPageView1.Controls)
    {
    var page = item as Telerik.WinControls.UI.RadPageViewPage;
    if (page == null) continue;

    foreach (Control pgw in page.Controls)
    {
    var box = pgw as Telerik.WinControls.UI.RadGroupBox;
    if (box == null) continue;

    foreach (Control itemCheck in box.Controls)
    {
    var checkBox = itemCheck as Telerik.WinControls.UI.RadCheckBox;
    if (checkBox == null) continue;

    if (linesCH.Contains(checkBox.Tag.ToString()))
    {
    checkBox.Checked = true;
    }
    else
    {
    checkBox.Checked = false;
    }
    }
    }
    }
    میتونید در خط اول مستقیم روی radPageView1.Pages حلقه را اجرا کنید تا نیازی به تبدیل(خط3و4) هم نباشد






    پ.ن:
    از تگ مناسب برای کدها استفاده کنید. برای اینکه فقط متن و نه استایل کپی بشه متن را به ویرایشگری مثل نوت پد منتقل و از اونجا کپی کنید.

  7. #7
    کاربر دائمی
    تاریخ عضویت
    تیر 1390
    محل زندگی
    کرمانشاه
    پست
    1,487

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

    سپاس فراوان .

    حالا با این مدل که با کمک کد شما نوشتم و متد Contains چه طوری میشه مقداری که Contains پیدا کرده رو در یک String سیو کنیم ؟



    if (linesCH.Contains(checkBox.Tag.ToString()))
    {
    checkBox.Checked = true;
    }
    else
    {
    checkBox.Checked = false;
    }



    این قسمت که Contains هست .در واقع داره یک مقدار bool می فرسته . چه طوری میشه اون خطی که در LinkedList پیدا شده ، مقدار اون خط رو هم داخل یه String داشته باشم ؟

  8. #8
    کاربر دائمی
    تاریخ عضویت
    تیر 1390
    محل زندگی
    کرمانشاه
    پست
    1,487

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

    مشکلم حل شد . بهتره از Dictionary استفاده کنید .

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

  1. پاسخ: 8
    آخرین پست: سه شنبه 28 شهریور 1391, 23:49 عصر
  2. سوال: گرفتن اطلاعات ثبت شده در بانک بصورت AJAX
    نوشته شده توسط rezarezaa در بخش jQuery
    پاسخ: 7
    آخرین پست: سه شنبه 05 مهر 1390, 10:14 صبح
  3. انتقال مقادیر ثبت شده در پایگاه داده به textbox
    نوشته شده توسط aaraaz در بخش دسترسی به داده ها (ADO.Net و LINQ و ...)
    پاسخ: 8
    آخرین پست: یک شنبه 10 خرداد 1388, 10:23 صبح
  4. سوال: مشکل ثبت مقادیر ویرایش شده در Access
    نوشته شده توسط sql_qassem در بخش بانک های اطلاعاتی در Delphi
    پاسخ: 11
    آخرین پست: سه شنبه 01 مرداد 1387, 10:00 صبح
  5. فارسی ثبت شده در فیلد موقع کوئری گرفتن
    نوشته شده توسط dreamer در بخش MySQL
    پاسخ: 3
    آخرین پست: دوشنبه 19 آذر 1386, 01:25 صبح

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

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