PDA

View Full Version : انتخاب رویداد کامبوباکس



jafari_m246
جمعه 19 مرداد 1386, 08:34 صبح
من یک کامبوباکس دارم حاوی کد اردو ها

حالا می خواهم با تغیر کد اردو datagrid هم تغیر کنه و اطلاعات همان اردو را نمایش بدهد

می خواهم ببینم که توی کدام یک از رویداد های کامبوباکس ام دستورات بایند کردن datagrid را بنویسم؟

همانطور که متوجه شدید من از update استفاده نمی کنم(چون زیاد در موردش نمیدانم)



DataTableMapping tblmap = newDataTableMapping();
DataColumnMapping colmap = newDataColumnMapping();
da = newSqlDataAdapter("select * from trip where tr_num='" + comboBox3.SelectedValue + "'", cn);
tblmap = da.TableMappings.Add("Table", "srh");
da.Fill(ds);
dataGrid1.DataSource = ds;
dataGrid1.DataMember = "srh";


این کد datagrid ام است
ولی نمیدانم توی کدام رویداد بنویسم تا درست کار کنه و خطا نگیره:متفکر:

ممنون

مهدی رحیم زاده
جمعه 19 مرداد 1386, 08:47 صبح
اینو امتحان کن دوست عزیز :

SelectedIndexChanged

once4ever
جمعه 19 مرداد 1386, 12:18 عصر
می خواهم ببینم که توی کدام یک از رویداد های کامبوباکس ام دستورات بایند کردن datagrid را بنویسم؟ شما میدونید بایند کردن چجور کاری انجام میده؟!!
دستورات بایند کردن رو میتونی تابع onload فرمت بنویسی نه تو رویدادهای کامبو بوکست

jafari_m246
جمعه 19 مرداد 1386, 15:21 عصر
خوب حالا این کد ها را در onload برنامه ام نوشتم


حالا چطوری میتوانم datagrid ام را update کنم تا با تغیر combobox ان هم تغیر کنه؟

once4ever
جمعه 19 مرداد 1386, 18:41 عصر
این موضوع خیلی تو این فروم تکرار شده.
1. یه بیندینگ سورس درست کن و دیتاست رو به اون بده
2. دیتاسورس دیتاگریدت هم برابر اون بیندینگ سورس بکن
3. دیتاسورس کامبوباکس رو هم برابر اون بیندینگ سورس کن
4. یک کامبوباکس دوتا پارامتر داره بنام displaymember و valumember
مقدارdisplaymember برابر نام ستونی که میخوای تو کامبو نشون بده قرار بده

تمام اینکارایی که گفتم تنها با 5تا کلید ماوس انجام میشه!

BindingSource bind = new BindingSource(ds, "srh");
dataGrid1.DataSource = bind;
comboBox1.DataSource = bind;
comboBox1.DisplayMember = "fieldname";

jafari_m246
شنبه 20 مرداد 1386, 07:33 صبح
:گریه: نه دوست گلم .
سوالم را یک بار دیگه دقیق می گم.


SqlDataAdapter da3 = newSqlDataAdapter("select * from trip", cn);
DataTable dt3 = newDataTable();
da3.Fill(dt3);
comboBox3.DataSource = dt3;
comboBox3.DisplayMember = "tr_num";
comboBox3.ValueMember = "tr_num";

DataTableMapping tblmap = newDataTableMapping();
DataColumnMapping colmap = newDataColumnMapping();
da = newSqlDataAdapter("select * from trip where tr_num='" + comboBox3.SelectedValue + "'", cn);
tblmap = da.TableMappings.Add("Table", "srh");
//colmap = tblmap.ColumnMappings.Add("tr_num", "شماره اردو");
da.Fill(ds);
dataGrid1.DataSource = ds;
dataGrid1.DataMember = "srh";


کد های بالا هنگام load شدن فرم اجرا میشوند.
و datagrid اطلاعات اون اردوئی رانمایش میدهد که هنگام load شدن فرم کد آن در قسمت text کامبوباکس قرار دارد .
حالا من می خواهم با انتخاب گزینه های دیگر comboBox دیتا گرید هم تغیر کنه و اطلاعات اون اردویی که جدید انتخاب شده را نمایش بدهد.

hdv212
شنبه 20 مرداد 1386, 16:31 عصر
تو همون رویداد SelectedIndexChanged انجام بده، و در اون اطلاعات گریدت رو دوباره لود کن یا با Expression مربوط به DataTable ات فیلترش کن.