Forum
Merhaba 2 adet Combobox'ım bulunmakta. Yapmak istediğimi bir örnekle anlatmak istersem; ilgili araba modeli birinci combobox dan seçilip ikinci combobox da ilgili markanın modelini getirmek. Örneğin: Audi => A3,A4 Ford => Focus,Mondeo gibi.
Kodlarımı ;Comboboxın _SelectedIndexChanged olayına yazdım fakat bir üstdeki ID yi yakalayamıyorum. (Anladığım kadarı ile)
Şuanki durumum: Page_Load olayında birinci combobox'ı dolduruyorum, ikinci comboboxda seçip yapmak istediğim de ID yi alan kısımda şu hatayı veriyor:
int birimturuID = Convert.ToInt32(cbBirimTurleri.SelectedValue);
'System.Data.DataRowView' türündeki nesne 'System.IConvertible' türüne atılamadı.
Sizce çözüm önerisi ne olabilir?
Databind esnasında display field ve value filed ozellıklerını doldurursanız hata vermiyecektir
ProfectSoft Yazılım ve Danışmanlık Hizmetleri
LogPusher & Bifyou E-Commerce System
www.profectsoft.com
Yani şu şekilde
List<Country> countries = new List<Country> { new Country("UK"),
new Country("Australia"),
new Country("France") };
bindingSource1.DataSource = countries;
comboBox1.DataSource = bindingSource1.DataSource;
comboBox1.DisplayMember = "Name";
comboBox1.ValueMember = "Name";
ProfectSoft Yazılım ve Danışmanlık Hizmetleri
LogPusher & Bifyou E-Commerce System
www.profectsoft.com
İlk
olarak cevap için teşekkür ederim. Veriler; veritabanından dataset yapısı ile
combobox'lara doldurulmakta. Sizin bahsettiğiniz şekilde yaptım fakat bir
üsttedki comboboxdan gelen ValueMember ı
alamıyor. Page load ve Combobox'ın SelectedChange özelliğine durma noktası
koydum. Bunun sonucu page load daki alanların ValueMember ve DisplayMember ları geliyor fakat combobox dan seçim yapınca bu alanlar
boş beliyor. Bunun sonucunda da bir önceki mesajımda ki hatayı fırlatıyor.
Benim anladığım kadarı ile Web
form uygulamarı DropDownList de bulunan AutoPostBack gibi işlemle birinci
combobox olayında refresh yaptırmak lazım. Üç gündür uğraşıyorum ama bunu
combobox da bir türlü yaptıramadım.
(Not: Combobox ların SelectedChange olayı
değilde _Click olayında kodlarımı çağırdığımda sıkıntısız işliyor. Fakat click
de bir önceki combobox ları click olayı olduğu için geç algılıyor. Yani büyük
bi ihtimalle click de refresh'e benzer olay gerçekleştiği için onda sıkıntı
yaşatmıyor )
value memberı almamasının nedeni şudur muhtemelen post back yaptığınız için combo resetleniyordur. combolarını doldurdugunuz yere şu şekilde bir kod uygulayınız
if(!Page.IsPostBack)
{
combo database kodları....
.....
}
bunu page loadda yapmanız yada datayı load ettiğiniz yerde yapmanız gerekmektedir.
ProfectSoft Yazılım ve Danışmanlık Hizmetleri
LogPusher & Bifyou E-Commerce System
www.profectsoft.com
value memberı almamasının nedeni şudur muhtemelen post back yaptığınız için combo resetleniyordur. combolarını doldurdugunuz yere şu şekilde bir kod uygulayınız
if(!Page.IsPostBack)
{
combo database kodları....
.....
}
bunu page loadda yapmanız yada datayı load ettiğiniz yerde yapmanız gerekmektedir.
Aynen benim de yapmak istediğim bu. Fakat Windows form da PostBack ya başka isimde geçiyor yada yada çağrılma fonksiyonu farklı. Bahsettiğiniz şekilde load olayına o tarz kod yazmaya izin vermiyor.
hocam sen bir team viewer ayarlarmısın öğlen bakalım
ProfectSoft Yazılım ve Danışmanlık Hizmetleri
LogPusher & Bifyou E-Commerce System
www.profectsoft.com
hocam sen bir team viewer ayarlarmısın öğlen bakalım
Forum kurallarına göre bu yasak ama 🙁
Danışman - ITSTACK Bilgi Sistemleri
****************************************************************
Probleminiz Çözüldüğünde Sonucu Burada Paylaşırsanız.
Sizde Aynı Problemi Yaşayanlar İçin Yardım Etmiş Olursunuz.
Eğer sorununuz çözüldü ise lütfen "çözüldü" olarak işaretlerseniz diğer üyeler için çok büyük kolaylık sağlayacaktır.
*****************************************************************
Hocam sen bir team ayarlama 🙂 Pardon hakan hocam.
ProfectSoft Yazılım ve Danışmanlık Hizmetleri
LogPusher & Bifyou E-Commerce System
www.profectsoft.com
mehmet bey,
Şu makaleyi incelermisiniz
http://msdn.microsoft.com/tr-tr/library/system.windows.forms.combobox.selectedindexchanged(v=vs.110).aspx konu ile alakalı sorununuzu çözecektir.
ProfectSoft Yazılım ve Danışmanlık Hizmetleri
LogPusher & Bifyou E-Commerce System
www.profectsoft.com
mehmet bey,
Şu makaleyi incelermisiniz
http://msdn.microsoft.com/tr-tr/library/system.windows.forms.combobox.selectedindexchanged(v=vs.110).aspx konu ile alakalı sorununuzu çözecektir.
Hocam ilginiz için tekrar teşekkür ederim. Sorunu çözdüm, biraz mantık dışı ama kod sağlıklı çalışıyor. Çözüm yolum: combobox dan gelen değeri bir Int değişkenine atıp öyle kullanıyordum daha sonra değişken tanımladığım yeri silip, combobox'ı çağıracağım yerde Convert ederek kullandım. Sorun çözüldü
🙂 süper çalışıyorsa ve stabilse düzgündür 🙂 kolay gelsin.
ProfectSoft Yazılım ve Danışmanlık Hizmetleri
LogPusher & Bifyou E-Commerce System
www.profectsoft.com