PDA

View Full Version : استفاده و مقداردهی کمبوباکس(comboBox) در دیتاگریدویو(datagridview)



raziyehbazargan
شنبه 14 مرداد 1391, 10:23 صبح
سلام دوستان

من یه دیتاگرید دارم با 6 ستون ثابت ...میخوام در اولین سطر یک کمبو باکس داشته باشم که مقادیرش رو از یکی از جدوالم بگیره.... همچنین یک باتن هم داشته باشم که کاربر با کلیک روی اون یک سطر دیگه با همون کمبوباکس ایجاد بشه..ممنون میشم راهنمایی کنید.


چطور کمبوباکس رو ایجاد و مقدارهی کنم..بیشتر با مبجث مقدارهی (از جدول یا همون binding) مشکل دارم....

Mahmoud.Afrad
شنبه 14 مرداد 1391, 11:04 صبح
اگر به صورت ویژوال میخواهید به این صورت ستونی از نوع کمبو اضافه کنید و دیتاتیبل موردنظر را از دیتاست به datasource بایند کنید

یا اینکه از طریق کدنویسی به اینصورت

DataGridViewComboBoxColumn dgvcmb = new DataGridViewComboBoxColumn();
dgvcmb.DataSource = dt;
dgvcmb.DisplayMember = "Name of column to display";
dgvcmb.ValueMember = "Name of column for value of selected item";
dataGridView1.Columns.Add(dgvcmb);
dt دیتاتیبلی هست که از دیتابیس پر شده. مثل کمبوباکس معمولی انجام میدید و در نهایت به دیتاگرید اضافه میکنید.

raziyehbazargan
شنبه 14 مرداد 1391, 11:31 صبح
90708ممنون از راهنماییتون دوست هزیز من اینکارو انجام دادم اما تو کمبوباکس چیزی نمایش داده نمیشه یعنی روی کمبو که کلیک میکنم هیچ چیزی نمایش نمیده درواقع مثل یه باتن میمونه ....


این کد رو براش نوشتم جواب نداد حتی بصورت ویزاردی هم انجام میدم بازم هیچی نمایش نمیده

//DataGridViewComboBoxColumn cmb_Damage = new DataGridViewComboBoxColumn();
// cmb_Damage.HeaderText = "Damage";
//cmb_Damage.Name = "cmb_Damage";
// cmb_Damage.DataSource = "Tbl_Damage";
// cmb_Damage.DataSource = objDamageCntr.DamageBinding();
// cmb_Damage.ValueMember = "Id";
// cmb_Damage.DisplayMember = "Title";
objDamageCntr.DamageBinding کلاسی هست که تعریف کردم و در اونجا از DATATABLE استفاده کردم برای Bind

Mahmoud.Afrad
شنبه 14 مرداد 1391, 11:42 صبح
این خط cmb_Damage.DataSource = "Tbl_Damage"; چیه؟!!! اصلا معنی و مفهومی نداره.

برای من که جواب داد. کد تابع DamageBinding() بزارید.

raziyehbazargan
شنبه 14 مرداد 1391, 12:21 عصر
کدها رو داخل تگ # بذارید تا مرتب بشه.

این خط cmb_Damage.DataSource = "Tbl_Damage"; چیه؟!!! اصلا معنی و مفهومی نداره.

برای من که جواب داد. کد تابع DamageBinding() بزارید.


مرسی مشکلم حل شد...ممنون از راهنماییتون

من زیاد با دیتاگرید کار نکردم و ممنون میشم در این موردم راهنمایی کنید

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

میخوام کار با انتخاب گزینه مورد نظرش از کمیو و همینطور انخاب هر یک از ستون ها با زدن باتن اون سطر در جداولم درج بشه

در واقع چهار جدول دارم:

جدول اولمTbl_Damage: شامل :Id, Title
این همون جدولیه که گزینه هاش در کمبو بایند شده

جدول دومTbl_DamagePosition: شامل :Id, Title
که شامل گزینه های Top,Bottom,Left,Right,Front,Back هست که ستون هایی با همین نام هم ایجاد کردم.

جدول سومم Tbl_OperationType :شامل Id, Name که ستونی با نامه IsServices براش در دیتاگرید تعریف کردم و از نوع Bit هست

جدول چهارم که جدول واسط هست شامل Id سه جدول بالا
DamagePosition_Id
Damage_Id
OperationType_Id


نمیدونم چه طور باید اینکارو انجام بدم؟؟؟ ممنو نمیشم راهنمایی کنید.90709

Mahmoud.Afrad
شنبه 14 مرداد 1391, 12:47 عصر
اول باید تشخیص بدید باتن فشرده شده یا نه . از رویداد cell click استفاده کنید تا بتونید فشرده شدن باتن را تشخیص بدید
private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
{
if (e.ColumnIndex == "اندیس ستونی که باتن هست" )
{
// تشخیص اینکه در سطر جاری کدام تیک خورده

// واینزرت سطر جاری بر حسب تیک خورده
}
}
برای تشخیص تیک خوردن میتونید مقدار سلولهایی که چک باکس هستند از سطر جاری را بخوانید هر کدوم true بود یعنی اون تیک خورده.
بعد از تشخیص تیک ، باید با یک if کوئری انتخاب و اجرا بشه.

yousefsami
دوشنبه 17 شهریور 1393, 11:32 صبح
سلام به همه دوستان
سوال من اینکه من یه Gridview دارم که داره از جدول محصولات اطلاعاتشو میخونه
حالا من داخل این Gridview یه دونه combo box میخوام بزارم که از جدول مشتری ها اطلاعاتشو بخونه
من وقتی Combobox به صورت جدا گانه Bind میکنم چون Gridview داره از یه جدول دیگه میخونه برنامه ایراد میگیره

راه حلی هست آیا؟؟
میدونم هست پس دوستان یاری کنید خواهشا

sohrabi.1384
پنج شنبه 06 آذر 1393, 18:25 عصر
سلام دوست عزیز ی که به این تاپیک امدی...!!!
ببخشید چند سوال داشتم .
اول
کارهایی که تا به حال انجام دادم رو میگم.بعد سوالم رو مطرح میکنم

1- من اطلاعاتم را با پروسیجر از DB میگیرم.
2 -داخل Data Table میریزم
3-با یک ستون ، اطلاعات را داخل Data Gride View نمایش میدم

اما درخواست و سوال بنده حقیر:
1 - اطلاعات یک ستون از DataTable رو به صورت ComboBox در یک سطر از ستون Data Girid View انتقال و نمایش بدم؟
2 - طریقه ارسال اطلاعات یک سطر یا سطر از ستون از دیتا گیرید به دیتا بیس چگونه هست؟

مرسی از چشمان قشنگتون که نوشته های بنده را خواند

lمثال با عکس


126096