2010-07-21 24 views
7

için de güncelleştirilir. Üzerinde iki adet DropDownList denetimi bulunan ve her ikisi de 60-80 derece arasında bir sıcaklık içeren bir WebForms sayfam var, biri diğerini soğutma için ısıtıyor. Onlar .aspx bildirilen: doldurulurBir DropDownList için SelectedValue ayarı, başka bir DropDownLIst

<asp:DropDownList ID="heating" runat="server" /> 
<asp:DropDownList ID="cooling" runat="server" /> 
her liste için değerleri

kod arkasında kullanarak:

for(int i = 60; i <= 80; i++) 
{ 
    var listItem = new ListItem(i + " degrees", i.ToString()); 

    heating.Items.Add(listItem); 
    cooling.Items.Add(listItem); 
} 

Ben kullanarak her DropDownList için seçilen değeri çalıştığınızda kullanılarak veritabanından yüklenen veriler içeren bir nesne değerleri:

heating.SelectedValue = myHome.avgHeatingTemp.ToString(); 
cooling.SelectedValue = myHome.avgCoolingTemp.ToString(); 

SelectedValue iki listeler için myHome.av değere, daha sonra myHome.avgHeatingTemp değere önce ayarlanmış gCoolingTemp. Bunun neden olduğu ya da nasıl düzeltileceği hakkında hiçbir fikrim yok.

değerleri SelectedValues ​​ayarlama işleminin her adımdan sonra her bir değişken için olan İşte neyi:

Initial State 
    heating.SelectedValue: 60 
    cooling.SelectedValue: 60 
    myHome.avgHeatingTemp: 72 
    myHome.avgCoolingTemp: 75 

After setting heating.SelectedValue 
    heating.SelectedValue: 72 
    cooling.SelectedValue: 72 
    myHome.avgHeatingTemp: 72 
    myHome.avgCoolingTemp: 75 

After setting cooling.SelectedValue 
    heating.SelectedValue: 75 
    cooling.SelectedValue: 75 
    myHome.avgHeatingTemp: 72 
    myHome.avgCoolingTemp: 75 

cevap

7

Sen öğesini nesnenin aynı örneğine olanlar bağlayıcı niteliktedir. Yani, birini seçtiğinizde, diğerini de seçiyorsunuz. Açılır listelerini doldurduğunuzda, iki örnek ListItem oluşturmayı deneyin. ListItem kendisi Selected özelliği vardır çünkü

for(int i = 60; i <= 80; i++) 
{ 
    var listItem1 = new ListItem(i + " degrees", i.ToString()); 
    var listItem2 = new ListItem(i + " degrees", i.ToString()); 

    heating.Items.Add(listItem1); 
    cooling.Items.Add(listItem2); 
} 

bu gerçekleşir. Bunu bir tane için ayarladığınızda, diğerine de ayarla.

+0

+1 Bana bunu yap. – womp

+0

Teşekkürler, işe yaradı. Bu benim problemim hakkında da ilk düşüncem vardı ve bunu denediğimi sandım ve işe yaramadığını düşündüm ama ... Sadece yeterli kafein ve WebForm yeteneklerini azaltmak için harcayacağım. MVC ile çalışan zamanın artan miktarı (ki kötü bir şey olarak düşünmüyorum). – Hamman359

+0

Kesinlikle değil. Bu durum kesinlikle sezgisel değil. – EndangeredMassa

İlgili konular