Раскрывающиеся списки имеют два значения - текст и значение. Вы либо связали свой выпадающий список с набором элементов (вероятно, в IEnumerable, например, с массивом или списком). Таким образом, все, что вам нужно сделать, это перехватить событие onchange на стороне клиента, захватить выбранное значение раскрывающегося списка и поместить его в метку / текстовое поле, в котором отображается скорость. Вот пример для вас:
<%@ Page Language="VB" AutoEventWireup="false" CodeFile="Default.aspx.vb" Inherits="_Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:DropDownList ID="DropDownList1" runat="server" onchange="javascript:PopulateRate(this.value);"></asp:DropDownList>
<asp:Label ID="Label1" runat="server" Text=""></asp:Label>
<asp:TextBox ID="TextBox1" runat="server" onchange="javascript:SelectRate(this.value);" style="width: 100px;"></asp:TextBox>
</div>
</form>
</body>
<script language="javascript">
function PopulateRate(value) {
//debugger;
document.getElementById('<% =Label1Name() %>').innerText = value;
}
function SelectRate(value) {
var z = document.getElementById('<% =DropDownList1Name() %>');
//method 1 to set dropdown selected item:
z.value = value;
//method 2 to set dropdown selected item::
for (var i = 0; i < z.options.length; i++) {
if (z.options[i].value == value) {
z.options[i].selected = true;
return;
}
}
}
</script>
</html>
Partial Class _Default
Inherits System.Web.UI.Page
Protected Overrides Sub OnLoad(ByVal e As System.EventArgs)
MyBase.OnLoad(e)
Dim countryRates = New System.Collections.Generic.Dictionary(Of String, Decimal)
countryRates.Add("Japan", 1.0)
countryRates.Add("Malaysia", 1.5)
countryRates.Add("Khazakstan", 1.75)
countryRates.Add("Argentina", 2.0)
countryRates.Add("Andorra", 2.5)
DropDownList1.DataTextField = "Key"
DropDownList1.DataValueField = "value"
DropDownList1.DataSource = countryRates
DropDownList1.DataBind()
End Sub
Protected Property Label1Name() As String
Get
Return Label1.UniqueID
End Get
Set(ByVal value As String)
End Set
End Property
Protected Property DropDownList1Name() As String
Get
Return DropDownList1.UniqueID
End Get
Set(ByVal value As String)
End Set
End Property
End Class
Из вашего описания это показывает, как делать то, что вы хотите. Я просто хочу, чтобы вы знали, что мне больно делать этот пример в VB.Net :) (поэтому вам придется извинить мой дрянной код VB, я обычно делаю C #)