2014-06-14 7 views
5

Ich habe einen großen Unterschied zwischen der Dropdroplist und RadComboBox bemerkt. Mit der asp: Dropdown-Liste ist es einfach, den ausgewählten Wert aus einem Datenbankeintrag zu setzen. Aber wenn ich das mit RadComboBox versuche, funktioniert es nicht. Selbst wenn ich rcboTest.Text = "Thomas Hardy" versuche, wird sich die RadComboBox überhaupt nicht ändern.Wie Radcombobox ausgewählten Wert aus der Datenbank festlegen?

Ich benutze VS2012, Sql Server 2012, RadComboBox und NorthWind als Datenbank verwenden. Hier

ist der Code zu füllen meine Datatable

public DataTable NWDContacts() 
    { 
     DataTable dt = new DataTable(); 

     string strCm = "Select * from [Contacts]"; 
     SqlCommand cm = new SqlCommand(strCm, cn); 
     cm.CommandType = CommandType.Text; 

     SqlDataAdapter da = new SqlDataAdapter(cm); 

     cn.Open(); 
     da.Fill(dt); 
     cn.Close(); 

     return dt; 
    } 

hier ist mein Code-Behind zu bevölkern die RadComboBox

protected void Button1_Click(object sender, EventArgs e) 
    { 
     rcboTest.DataSource = DA.NWDContacts(); 
     rcboTest.DataTextField = "ContactName"; 
     rcboTest.DataValueField = "ContactID"; 
     rcboTest.DataBind(); 
    } 

ist jetzt hier auf die Schaltfläche klicken Ereignis verwende ich, um zu versuchen, die RadComboBox zu ändern .Text

protected void Button2_Click(object sender, EventArgs e) 
    { 
     rcboTest.Text = "Thomas Hardy"; 
    } 

ich habe versucht mit rcboTest.SelectedValue, rcboTest.Se lectedItem und rcboTest.Text, und die Combobox möchte den Text nicht anzeigen, und SelectedValue und SelectedItem geben einen Fehler aus, der besagt, dass es nur gelesen werden kann.

Kurz gesagt, ich möchte meine RadComboBox auffüllen (was ich kann) und wenn ich gehe, um einen Datensatz zu aktualisieren, muss ich in der Lage sein, den RadComboBox Text auf den Datenbankwert zu setzen.

Ich weiß, dass der Code, den ich zeige widerspricht, was ich tun möchte, aber es ist für das Testen, bevor ich es zu einer Live-App lege.

Antwort

8

Es gibt Möglichkeiten, dies zu tun -

RadComboBoxItem item = RadComboBox1.FindItemByText("Thomas Hardy"); 
item.Selected = true; 

int index = RadComboBox1.FindItemIndexByValue("2"); 
RadComboBox1.SelectedIndex = index; 

//In your case value will be ContactID 
RadComboBox1.SelectedValue = value; 

Referenz - http://www.telerik.com/help/aspnet-ajax/combobox-items-server-side-code.html

+0

Danke, ich werde dies als Antwort akzeptieren, sobald es mir – Chris

+0

lässt Ich bin froh, es Ihnen geholfen. – Typist

Verwandte Themen