我有
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:标签,其中我只想显示在下拉列表中选择的名称。
我该怎么做?
答案 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事件的子例程。捕获所选值并将其设置为标签的文本值。