2015-04-29 2 views
0

Я обновляю веб-сайт 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> 
+0

свойство autopostback соответствует true – Jeremy

+0

OK. Как добавить событие непосредственно? –

+0

Используйте onchange и сделайте обратную передачу в событии OnChange. обратитесь к http://www.codeproject.com/Questions/270253/HTML-Select-Control-Needs-to-Postback-in-asp-net – rach

ответ

0

Я переместил яваскрипт функции, UpdateLocationList(), в файл отдельных .js и она была вызвана.

Смежные вопросы