PDA

View Full Version : combobox4 متصل به هم



nooshin609
پنج شنبه 31 مرداد 1392, 09:58 صبح
ُسلام دوستان
من 4 تا combo دارم که بهم متصلن و از 4 تا table ميخونن.استان.شهر.منطقه.مرکز
الان بالاخره موفق شدم تمومش کنم ولي الان که تموم شده ميبينم کدام خيلي مزخرفو زيادن.اشکالاي ريزه زياديم داره.
لطفا اگه يه روش ساده يا تيکه سورس اماده که اينکار ساده تر انجام بشه سراغ دارين بهم بگين
با تشکر

hamid_hr
پنج شنبه 31 مرداد 1392, 10:12 صبح
من برا اين كار يه تابع درست كردم كه استان رو برام لود كرد
بعد تو رويداد selectchangeindex استان شهر هاي مربوط به اين استانو لود كردم
تو رويداد selectindexchange شهر منطقه هاي اين شهر و مراكذ شون رو لود ميكنم

nooshin609
پنج شنبه 31 مرداد 1392, 10:26 صبح
منم اينکارو اول کردم ولي وقتي combo بيشتر از 2و3 تا ميشه ديگه جواب نميده
فرض کن table اخر که مراکز هست بترتيب همه مراکز ، با هر استان و شهرو منطقه اي هستن.مثلا 10 تاي اول واسه تهران 10 تاي دوم اصفهان و الي ...
حالا شما مياي کمبوي اول ميگي استان مازندران شهر ساري منطقه 2 ،حالا تو منطقه 2 ساري فقط يه مرکز هست.پس selectindex کمبو ميشه 1 و ميره توي
table رکورد اوليو مياره.در صورتي که گفتيم 10 تاي اول تهرانن.
الان مشکلم اينه

hamid_hr
پنج شنبه 31 مرداد 1392, 10:54 صبح
جدولاي من اينطورين
استان id,name
شهر id,idstate,name
منطقه id,idcity,name
والي اخر
خب ميام ميگم تمام مناطق اين شهر رو براو بريز تو اين كومبو
نميدونم تونستم منظورمو برسونم يا نه

nooshin609
پنج شنبه 31 مرداد 1392, 11:04 صبح
ميشه کدتو بزاري ببينم.واسه يه کمبوتو بزاري کافيه.چون من وقتي selectindexchangeرخ ميده ميرم از ديتابيس تخصيص ميدم به کمبو

hamid_hr
پنج شنبه 31 مرداد 1392, 11:12 صبح
مثلا اين برا رويداد selectindexchange استان هستش
CBoxCity.Items.Clear();
CBoxCity.Text = "";
ArrayList CityList = Program.DBClass.Select_City(CBoxState.Text);
foreach (string tmp in CityList)
CBoxCity.Items.Add(tmp);
if(CBoxCity.Items.Count > 0)
CBoxCity.SelectedIndex = 0;

veniz2008
پنج شنبه 31 مرداد 1392, 11:15 صبح
منم اينکارو اول کردم ولي وقتي combo بيشتر از 2و3 تا ميشه ديگه جواب نميده
فرض کن table اخر که مراکز هست بترتيب همه مراکز ، با هر استان و شهرو منطقه اي هستن.مثلا 10 تاي اول واسه تهران 10 تاي دوم اصفهان و الي ...
حالا شما مياي کمبوي اول ميگي استان مازندران شهر ساري منطقه 2 ،حالا تو منطقه 2 ساري فقط يه مرکز هست.پس selectindex کمبو ميشه 1 و ميره توي
table رکورد اوليو مياره.در صورتي که گفتيم 10 تاي اول تهرانن.
الان مشکلم اينه
سلام.
مشخصه که دید اشتباهی نسبت به مساله دارید.
با این سبک طراحی جدولی که شما در نظر گرفتید (بگذریم از اینکه بهینه هست یا نیست چون در مورد جدول آخر به 3 تا join نیاز هست) هر استان یک id داره و یک نام. در مورد شهرستان هم همینطوره. هر شهرستانی یک id داره و یک نام و ...
شما وقتی کمبو رو پر میکنی باید کد هر آیتم رو هم بریزی تو کمبو باکس (خصوصیت valuemember ). از این به بعد دیگه موقع انتخاب از کمبو و فیلتر کردن، باید از selectedvalue کمبو کمک بگیری نه اینکه بیای selectedindex استفاده کنی.