2009-12-29 2 views
1

У меня естьDropDownList значение в осины: этикетки

public class ListA 
{ 

    private string code; 
    private string name; 

    public string Code { get { return code; } set { code = value; } } 
    public string Name { get { return name; } set { name = value; } } 

} 

Я Наполнение DropDownList с кодом: имя.

и у меня есть asp: label, в котором я хочу показать только имя, которое выбрано в раскрывающемся списке.

Как я могу это сделать?

ответ

1

Установите свой DROPDOWNLIST DataValueField = "Name"

, а затем использовать myLabel.Text = myDropDownList.SelectedValue;

+0

Я хочу код и имя в раскрывающемся списке. Оба они требуются. Но в метке нужно только имя – user240266

+0

@ bubblygirl-0515: Да, я ответил на ваш другой вопрос. Используя мой ответ, вы все равно можете установить для DataValueVield только имя. Он не изменит то, что отображается пользователю. –

+0

Юрий, могу ли я получить ваш идентификатор электронной почты. Мне нужна еще одна помощь, и это немного связано с типом, и я не могу опубликовать код в Интернете. – user240266

0

если на постбэка:

myLabel.Text = myDropDownList.SelectedValue; 

, если вы хотите, чтобы немедленно изменить в браузере, когда пользователь выбирает что-то другое, вы должны использовать JavaScript, например, как это:

JavaScript:

function updateText(ddl, lblId) { 
    var lbl = document.getElementById(lblId); 
    lbl.innerHTML = ddl[ddl.SelectedIndex].value; 
} 

.NET:

myDropDownList.Attributes.Add("onchange", "updateText(this, '" + myLabel.ClientID + "');"); 

EDIT Полностью, кроме точки, но поскольку я вижу, что вы не используете их: слышали ли вы о свойствах авто? Так как C# 3.5, вы можете написать, что точный класс, используя только следующий код:

public class ListA 
{ 
    public string Code { get; set; } 
    public string Name { get; set; } 
} 
2

Вам существенно необходимо создать функцию/метод для обработки события OnChange или OnSelectedIndexChange для выпадающего списка. Когда событие запускается, ваш код должен установить свойство Text метки на основе текста вашего выбранного элемента в раскрывающемся списке.

Вы можете сделать это целиком в JavaScript, но это пример того, как это можно сделать исключительно в коде позади ... Вы также можете посмотреть на интеграцию или UpdatePanels или какой-либо другой формы, чтобы эти изменения были изменены асинхронно.

КОД ЗА

protected void MyDropDown_SelectedIndexChanged(object sender, EventArgs e) 
{ 
    if(MyDropDown.SelectedIndex > -1) 
    { 
     MyLabel.Text = MyDropDown.SelectedItem.Text; 
    } 
} 

FRONT END

<asp:DropDownList ID="MyDropDown" runat="server" AutoPostBack="True" 
    onselectedindexchanged="MyDropDown_SelectedIndexChanged" > 
    <asp:ListItem Selected="True"></asp:ListItem> 
    <asp:ListItem Value="Test1">Test1</asp:ListItem> 
    <asp:ListItem Value="Test2">Test2</asp:ListItem> 
    <asp:ListItem Value="Test3">Test3</asp:ListItem> 
</asp:DropDownList> 
<br /> 
<asp:Label ID="MyLabel" runat="server" /> 
+0

Это не будет работать, потому что текст проявляет особое значение, основанное на ее предыдущий вопрос. –

+0

Предыдущий вопрос? «У меня есть asp: label, в котором я хочу показать только имя, которое выбрано в раскрывающемся списке. Как я могу это сделать?» Этот ответ действительно заботится о вопросе ... – RSolberg

0

Создать подпрограмму, которая обрабатывает OnSelectedIndexChanged событие. Захватите выбранное значение и установите его на текстовое значение вашей метки.