Как установить выбранное значение radcombobox из базы данных?

Я заметил большую разницу между стандартным Dropdownlist и RadComboBox. С помощью asp:dropdownlist можно легко установить выбранное значение из записи базы данных. Но когда я пытаюсь сделать это с помощью RadComboBox, это не работает. Даже когда я пробую rcboTest.Text = "Thomas Hardy", RadComboBox вообще не меняется.

Я использую VS2012, Sql Server 2012, RadComboBox и использую NorthWind в качестве базы данных.

Вот код для заполнения моего 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;
    }

вот мой код для заполнения RadComboBox

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

теперь вот событие нажатия кнопки, которое я использую, чтобы попытаться изменить RadComboBox.Text

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

Я пытался использовать rcboTest.SelectedValue, rcboTest.SelectedItem и rcboTest.Text, и поле со списком не хочет отображать текст, а также SelectedValue и SelectedItem, выдает ошибку, говорящую, что это только для чтения.

Короче говоря, я хочу заполнить свой RadComboBox (что я могу), и когда я иду обновлять запись, мне нужно иметь возможность установить текст RadComboBox в значение базы данных.

Я знаю, что код, который я показываю, противоречит тому, что я хочу сделать, но он предназначен для тестирования, прежде чем я помещу его в живое приложение.


person Chris    schedule 14.06.2014    source источник


Ответы (1)


Есть способы сделать это -

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;

Ссылка — http://www.telerik.com/help/aspnet-ajax/combobox-items-server-side-code.html

person Typist    schedule 14.06.2014
comment
Спасибо, я приму это как ответ, как только это позволит мне - person Chris; 14.06.2014
comment
Я рад, это помогло вам. - person Typist; 14.06.2014