Я обновляю веб-сайт ASP.NET Framework 2.0. Это написано в VB. Я создаю раскрывающийся список и динамически заполняю его. Это работает. Мне нужно добавить событие, onselectchange() в раскрывающийся список. Это событие изменит пункты меню. Это метод создает выпадающее меню и заполнит его:Добавить прослушиватель событий в выпадающий список динамически в коде за
Public Sub ListLocations()
Dim facilityValueSelected As String = ""
'Get all of the facility service types from the database
'The stored procedure is ordered by ID.
GetServiceTypes()
Response.Write("<div style='text-align:left;'>")
Response.Write("<label>Facility Type:<select id='FacilityTypeDDL' name='FacilityTypeDDL' size='1' runat='server'>")
For Each facility As ListItem In lstBoxFacilityTypes
'Get the first value in the list and use the ID to to the list of locations below
If String.Compare(facilityValueSelected, "") = 0 Then
facilityValueSelected = facility.Value
End If
Response.Write("<option value=''" & facility.Value & "''>" & facility.Text & "</option>")
Next
Response.Write("</select></label>")
Response.Write("</div>")
End Sub
Как добавить событие в этой DROPDOWNLIST, когда пользователь изменяет выбор? Я хочу, чтобы событие обрабатывалось в коде, чтобы я мог позвонить в базу данных.
UPDATE Я добавил событие «onchange» в раскрывающийся список, но он не стреляет в код позади. Это мои изменения:
Response.Write("<label>Facility Type:<select id='FacilityTypeDDL' name='FacilityTypeDDL' size='1' runat='server' onchange='UpdateLocationList()' autopostback='true'>")
Это метод, который я добавил в код позади: я поставил точку останова в этом методе в случае не срабатывает.
Public Sub UpdateLocationList()
Dim strFacilityValue As String = ""
'Get selected Service Type
strFacilityValue = "3"
'Populate Menu List
End Sub
UPDATE Добавлена функция выпадающего меню:
Response.Write("<label>Facility Type:<select id='FacilityTypeDDL' name='FacilityTypeDDL' size='1' onchange='UpdateLocationList();' autopostback='true'>")
Добавлен яваскрипт функция ниже на странице ASPX. Предупреждения не отображаются при изменении выбора.
<script type="text/javascript">
function UpdateLocationList(obj) {
alert('In function');
var facilityValue = document.getElementById("FacilityTypeDDL").value;
alert(facilityValue);
__doPostBack('FacilityTypeDDL', facilityValue);
}
</script>
UPDATE ASPX страница
<%@ Page Language="VB" AutoEventWireup="false" CodeFile="Locations.aspx.vb" Inherits="Editor_Locations" %>
<script type="text/javascript">
function UpdateLocationList(obj) {
alert('In function');
var facilityValue = document.getElementById("FacilityTypeDDL").value;
alert(facilityValue);
__doPostBack('FacilityTypeDDL', facilityValue);
}
</script>
<%ListLocations()%>
UPDATE
Я получаю сообщение об ошибке: ReferenceError: UpdateLocationList не определен. Это мой Javascript код:
<head runat="server">
<title>Locations</title>
<meta http-equiv="Content-Language" content="en-us"/>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252"/>
<script src = "scripts/jquery-1.11.2.min.js" type = "text/javascript"></script>
<script type="text/javascript">
function UpdateLocationList(obj) {
alert('In function');
var facilityValue = document.getElementById("FacilityTypeDDL").value;
alert(facilityValue);
__doPostBack('FacilityTypeDDL', facilityValue);
}
</script>
</head>
<body>
<%ListLocations()%>
</body>
свойство autopostback соответствует true – Jeremy
OK. Как добавить событие непосредственно? –
Используйте onchange и сделайте обратную передачу в событии OnChange. обратитесь к http://www.codeproject.com/Questions/270253/HTML-Select-Control-Needs-to-Postback-in-asp-net – rach