2014-06-14 3 views
5

Ho notato una grande differenza tra il magazzino Dropdownlist e RadComboBox. Con asp: dropdownlist è facile impostare il valore selezionato da un record del database. Ma quando provo a farlo con RadComboBox, non funziona. Anche quando provo rcboTest.Text = "Thomas Hardy", RadComboBox non cambierà affatto.Come impostare il valore selezionato di radcombobox dal database?

Utilizzo VS2012, Sql Server 2012, RadComboBox e utilizzo di NorthWind come database.

Ecco il codice per popolare il mio 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; 
    } 

qui è il mio codebehind per popolare il RadComboBox

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

Ora qui è l'evento pulsante di scatto che sto usando per cercare di cambiare il RadComboBox .Text

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

ho provato con rcboTest.SelectedValue, rcboTest.Se lectedItem e rcboTest.Text e la casella combinata non vogliono mostrare il testo e il SelectedValue e SelectedItem, genera un errore che dice che è solo di sola lettura.

Quindi, in breve, voglio popolare il mio RadComboBox (che posso) e quando vado ad aggiornare un record devo essere in grado di impostare il testo di RadComboBox sul valore del database.

So che il codice che sto mostrando è in contraddizione con quello che voglio fare, ma è per testare prima di metterlo su un'app live.

risposta

8

ci sono modi per fare questo -

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; 

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

+0

Grazie, io accettare questa come la risposta non appena mi lascia – Chris

+0

Sono contento, che ti ha aiutato. – Typist