Эквивалентен ли выбор тега html в компонентах C #? - PullRequest
0 голосов
/ 23 октября 2011

Я использую компонент combobox, он кажется эквивалентным тегу select html, но не имеет значения в combobox? Например:

Выбор HTML:

<select name="foo">
<option value="baa">xxx</option>
<option value="foo">yyy</option>
</select> 

если выбрано значение xxx для меня возвращено значение baa

можно сделать это с некоторым компонентом C #?

Надеюсь, это понятно. Заранее спасибо.

1 Ответ

3 голосов
/ 23 октября 2011

Вы можете использовать обычный элемент управления ComboBox, но с небольшой настройкой.Каждый элемент, добавляемый в ComboBox, представляет собой object, и при рендеринге он вызывает метод ToString().

. Мы можем создать собственный класс для добавления в качестве элемента ComboBox:

public class ComboBoxItem
{
    public ComboBoxItem(string value, string text)
    {
        Value = value;
        Text = text;
    }

    public string Value { get; set; }
    public string Text { get; set; }

    public override string ToString()
    {
        return Text;
    }
}

Теперь вы можете создать экземпляр вышеупомянутого класса и добавить в коллекцию ComboxBox.Items.

private void Form1_Load(object sender, EventArgs e)
{
    comboBox1.Items.Add(new ComboBoxItem("1", "Green"));
    comboBox1.Items.Add(new ComboBoxItem("2", "Blue"));
    comboBox1.Items.Add(new ComboBoxItem("3", "Yellow"));
}

И вы можете получить доступ к выбранному элементу, который является экземпляром CombBoxItem, приведя comboBox1.SelectedItem кCombBoxItem

var comboBoxItem = (ComboBoxItem) comboBox1.SelectedItem;
comboBoxItem.Text  //Green/Blue/Yellow
comboBoxItem.Value //1/2/3
...