PDA

View Full Version : سوال: شرط گذاشتن روی کامبو موجود در گرید؟



samadblaj
یک شنبه 12 آذر 1391, 00:17 صبح
سلام عزیزانامیدوارم حالتون خوب باشه ...
ببخشید من میخوام روی کامبو توی گرید طرظ بذارم اما نمیدونم به چه شکله؟
اطلاعاتی از جدول بایند میشه مثلا اگه 1 بود ایندکس 0 انتخاب بشه...؟

VMTCO.IR
یک شنبه 12 آذر 1391, 00:36 صبح
سلام
فقط کافیه که تو Event RowDataBound بیای کنترل کمبوتو پیدا کنی، بعد نسبت به مقدار بایندت وضعیتشو تعیین کنی، همین.

samadblaj
یک شنبه 12 آذر 1391, 00:51 صبح
لطفا یه مثال بزنید خیلی سرچ کردم متوجه نشدم میتونم اطلاعات باید رو انجام دم شرط هممشکل ندارم فقط کامبو رو چجور صدا بزنم؟

Mahmoud.Afrad
یک شنبه 12 آذر 1391, 06:26 صبح
اگر میخواهی آیتم انتخابی کمبو رو ست کنی میتونی value سلول رو ست کنی (یا value کمبو ، فرقی نداره)
با فرض اینکه ستون اول کمبوباکس هست و میخوای برای کمبوی سطر اول مقدار 5 رو قرار بدی:

dataGridView1.Rows[0].Cells[0].Value = 5;

/* OR
DataGridViewComboBoxCell cbo = dataGridView1.Rows[0].Cells[0] as DataGridViewComboBoxCell;
cbo.Value = 5;
*/

samadblaj
یک شنبه 12 آذر 1391, 10:41 صبح
ممنونم دوست عزیز ولی این کار جواب منو نداد.. مثلا اگه textbox1 .text برابر 1 بود ایتم اول انتخاب بشه اگه 2 آیتم 2 انتخاب شد؟

گرید رو هم برابر با یه ستون کردم این خطار رو میده

http://www.dreamincode.net/forums/uploads/monthly_07_2012/post-599451-13431517536927.jpg

cherchil_hra
یک شنبه 12 آذر 1391, 10:54 صبح
سلام عزیزانامیدوارم حالتون خوب باشه ...
ببخشید من میخوام روی کامبو توی گرید طرظ بذارم اما نمیدونم به چه شکله؟
اطلاعاتی از جدول بایند میشه مثلا اگه 1 بود ایندکس 0 انتخاب بشه...؟

در دیتاگرید، ستونت که از نوع کمبو هست رو با استفاده از خاصیت های Datasource , DisplayMember, Valuemember تنظیم کن

Mahmoud.Afrad
یک شنبه 12 آذر 1391, 10:57 صبح
اگر کمبوباکس رو از دیتابیس پر میکنی و valuemember رو ست کردی و بخوای برحسب مقادیری که valuemember داره انتخابی داشته باشی باید value رو ست کنی نه index.

samadblaj
یک شنبه 12 آذر 1391, 15:54 عصر
در دیتاگرید، ستونت که از نوع کمبو هست رو با استفاده از خاصیت های Datasource , DisplayMember, Valuemember تنظیم کن
ببخشید ولی من بایند کردم نمیتونم این کار رو کنم میشه با کد این کار رو کرد مشکلی پیش نمیاد؟


اگر کمبوباکس رو از دیتابیس پر میکنی و valuemember رو ست کردی و بخوای برحسب مقادیری که valuemember داره انتخابی داشته باشی باید value رو ست کنی نه index.
میشه یه مثالی بذارید توی سایت های خارجی جستجو کردم کد هاشون نامناسب بود یا من متوجه نشدم...

میخوام مثلا اگه text عدد 1 بود مقدار اول اگه 2 بود مقدار دوم...

ممنون میشم

Mahmoud.Afrad
یک شنبه 12 آذر 1391, 17:11 عصر
شما کدی که باهاش کمبو رو پر میکنی بزار.

مقدار text قراره اندیس باشه یا id آیتم مورد نظر. چون اگر از جدول پر میشه ، id مهمه نه اندیس.

samadblaj
یک شنبه 12 آذر 1391, 17:39 عصر
شما کدی که باهاش کمبو رو پر میکنی بزار.

مقدار text قراره اندیس باشه یا id آیتم مورد نظر. چون اگر از جدول پر میشه ، id مهمه نه اندیس.

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

Mahmoud.Afrad
یک شنبه 12 آذر 1391, 19:50 عصر
برای انتخابهای دوتایی "بله/خیر" ، "درست/غلط"، میتونی به جای کمبوباکس از چک باکس استفاده کنی و لودفرم رو به اینصورت تغییر بدی:
private void Form1_Load(object sender, EventArgs e)
{
dataGridView1.DataSource = db.dates;
dataGridView1.Columns["Column1"].DataPropertyName = "indexs";
}


اگر نه به صورت زیر


اگر با ado.net کوئری مینوشتی هنگام سلکت گرفتن با یک switch میشد 0 و 1 اندیس رو به بله و خیر تبدیل کرد و این مقادیر رو به سلول ها داد ولی حالا با لینک به این صورت تونستم مقادیر دیتابیس رو در کمبوها ست کنم( نکته : اندیس آیتم های کمبوباکسها از 0 شروع میشن پس مقادیر indexes داخل دیتابیس باید صفر یا یک باشن نه 1 و 2 ):

private void Form1_Load(object sender, EventArgs e)
{
var records = from rec in db.dates
select new
{
rec.id,
rec.date1,
choice = (rec.indexs == 0) ? "بله" :
(rec.indexs == 1) ? "خیر" : null
};

dataGridView1.DataSource = records;
dataGridView1.Columns["Column4"].DataPropertyName = "choice";
dataGridView1.Columns["choice"].Visible = false;
}