dropdownlist值到asp:label

时间:2009-12-29 16:35:40

标签: c#

我有

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; } }

}

我使用代码填充下拉列表:name。

我有一个asp:标签,其中我只想显示在下拉列表中选择的名称。

我该怎么做?

4 个答案:

答案 0 :(得分:2)

您基本上需要创建一个函数/方法来处理下拉列表的OnChange或OnSelectedIndexChange事件。触发事件时,您的代码应根据下拉列表中SelectedItem的Text设置标签的Text属性。

你可以完全用JavaScript做到这一点,但这是一个纯粹在后面的代码中如何完成的示例...你还可以看看集成UpdatePanels或其他形式来异步进行这些更改。

代码背后

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

前端

<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" />

答案 1 :(得分:1)

设置DropDownList DataValueField = "Name"

然后使用myLabel.Text = myDropDownList.SelectedValue;

答案 2 :(得分: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 + "');");

修改 完全除了这一点,但因为我看到你没有使用它们:你听说过汽车属性吗?从C#3.5开始,您可以使用以下代码编写完全类:

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

答案 3 :(得分:0)

创建一个处理OnSelectedIndexChanged事件的子例程。捕获所选值并将其设置为标签的文本值。