PDA

View Full Version : مربوط کردن دو Combobox به هم



Mahdi_20
شنبه 14 شهریور 1388, 08:00 صبح
میخواستم بدونم چطوری میتونم 2 combobox رو بهم مربوط کنم؟
یا اینکه یک کامبو را بر اساس انتخاب کامبو دیگر فیلتر کنم؟
مثلا تو یه کامبو نام دانش آموز هست و دیگری نام کلاس..حالا اگه یه کلاس انتخاب شد آیتم ها به صورتی فیلتر بشن که تمام دانش آموزان اون کلاس در لیست قرار بگیره و اگر یه دانش آموز انتخاب شد در کامبو کلاس، کلاسی انتخاب بشه که اون دانش آموز داخلش هست.

Yasersadegh
شنبه 14 شهریور 1388, 08:25 صبح
سلام دوست عزيز
شما اگه يه سرچ بزني تو سايت خيلي راجع بهش بحث شده!!
به لينك زير يه نگاه بكنيد!!
http://barnamenevis.org/forum/showthread.php?t=167825

موفق باشيد:چشمک:

Mahdi_20
شنبه 14 شهریور 1388, 08:46 صبح
به نظر شما این کار درسته که هربار یه انتخابی انجام میشه بره از دیتابیس بخونه و کامبو رو پر کنه. به نظر من باید بشه کل اطلاعات رو خوند و روی کامبو فقط فیلتر انجام داد..؟! نمیشه؟

Yasersadegh
شنبه 14 شهریور 1388, 11:38 صبح
دوست عزيز تا اونجايي كه من اطلاع دارم كمبو باكس ها اين امكان رو ندارند!! چون تنها يه فيلد رو نگهداري مي كنند و به اين شكل نمي توان فيلتر كرد!!
ولي شما مي تونيد تويه ديتابيستون يه كوئري ايجاد كنيد طوري كه همون فيلتري كه مي خواهيد رو براتون انجام بده!! سپس datasource كمبو باكستون رو به اون كوئري مرتبط كنيد!! اين روش هم تقريبا همون روش قبليه!! با اين تفاوت كه كوئري در خود ديتابيس اجرا ميشه و تو برنامه هر بار اينكارو انجام نمي ديد!!!:متفکر:
موفق باشيد:چشمک:

mohsenashkboos
سه شنبه 17 شهریور 1388, 21:40 عصر
به نظر من شما بایستی از Dataset استفاده کنید . به طوریکا یک بار کل اطلاعات رو از Db بخوانید و سپس فیلترتون رو روش انجام بدین.چون اگه بخواید مستقیما از Db هر بار بخونید عملا کارایی برنامتون بسیار کاهش میابد.

hoshiari
چهارشنبه 18 شهریور 1388, 12:38 عصر
عزيز؛ من از اين روش تو پروژه هام استفاده مي كنم:
البته قسمتي از كد رو اينجا نوشتم و در ادامه توضيح ميدم

Product pro = new Product();
DataTable dtProduct = new DataTable();
dtProduct.Columns.Add("ProductId");
dtProduct.Columns.Add("ProductName");
dtProduct.Columns.Add("ProductType");
DataRow drProduct = null;
if (pro.AllProduct != null)
{
foreach (Product p in pro.AllProduct)
{
if (p.productname == typename)
{
drProduct = dtProduct.NewRow();
drProduct["ProductId"] = p.productid.ToString();
drProduct["ProductName"] = p.productname;
drProduct["ProductType"] = p.producttype;
dtProduct.Rows.Add(drProduct);
}
}
cmbProType.DataSource = dtProduct;
cmbProType.DisplayMember = "ProductType";
cmbProType.ValueMember = "ProductId";
}

كل كاري كه اينجا انجام مي شه اينه كه اطلاعات را از پايگاه ميخونيم و در يك ديتا تيبل مي ريزيم و در
اخر
cmbProType.DataSource = dtProduct;
cmbProType.DisplayMember = "ProductType";
cmbProType.ValueMember = "ProductId";
يعني پراپرتي كومبوباكس را تنظيم مي كنيم.