2014-07-23 2 views
1

Я не уверен, что я делаю неправильно здесь. Я пытаюсь получить событие OnSelectedIndexChanged, но я пытаюсь сделать это, не используя элементы формы asp.OnSelectedIndexChanged Не работает

В приведенном ниже примере OnServerClick работает для элемента <a>, но ни OnSelectedIndexChanged, ни OnServerClick, похоже, не работает для <select>.

<%@ Page Language="VB" AutoEventWireup="True" %> 
<!DOCTYPE html> 
<html> 
<head> 
<script runat="server"> 

     Sub HtmlAnchor_Click_1(sender As Object, e As EventArgs) 
     Message.InnerHtml = "this doesn't work" 
     End Sub 

     Sub HtmlAnchor_Click_2(sender As Object, e As EventArgs) 
     Message.InnerHtml = "this works" 
     End Sub 

</script> 
</head> 
<body> 

    <form id="form1" runat="server"> 

     <select id="AnchorSelect" name="select1" OnSelectedIndexChanged="HtmlAnchor_Click_1" runat="server"> 
       <option value="volvo">Volvo</option> 
       <option value="saab">Saab</option> 
       <option value="mercedes">Mercedes</option> 
       <option value="audi">Audi</option> 
     </select> 
     <br /><br /> 
      <a id="AnchorButton" onserverclick="HtmlAnchor_Click_2" runat="server">Click Here</a> 
     <br /><br /> 

     <span id="Message" runat="server"/> 
</form> 
</body> 
</html> 

Любые идеи или решения будут оценены. Cheers.

+2

AutoPostBack = истинный –

+2

Кроме того, почему бы вам не использовать '<жерех: DropDownList>' вместо этого? –

ответ

1

select является вводом HTML, а OnSelectedIndexChanged будет функцией Javascript, которая вызывается.

Использовать <asp:DropDownList> и установить autopostback=true. Затем вы должны положить OnSelectedIndexChanged в свой код, чтобы использовать его.

Проверьте этот пример: DropDownList's SelectedIndexChanged event not firing

+0

Это работает, но если у меня есть другие dropdownlists или selects на странице, которые заполняются на 'page_load', их выбор сбрасывается при срабатывании' OnSelectedIndexChanged'. Заявления для того, чтобы не объяснить всю мою ситуацию в первом сообщении – Mike

+0

Действительно, это должно быть что-то вроде 'controlName1_OnSelectedIndexChanged'. Каждому элементу управления потребуется собственное событие, когда изменяется выбранный индекс. Вы также должны проверить, есть ли его Postback перед повторным заполнением на 'page_load' –

+0

. У меня его отсортировано сейчас, спасибо вам за то, что указали мне в правильном направлении, вы звезда. – Mike

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