2011-02-05 28 views
158

Tengo un objeto DropDownList en mi página web. Cuando hago clic en él y selecciono un valor diferente, no ocurre nada, aunque tengo una función conectada al evento SelectedIndexChanged. Voy a tratar de publicar mi código aquí como ordenada como sea posible:Evento SelectedIndexChanged de DropDownList que no se activa

En primer lugar, el código HTML del objeto real:

<asp:DropDownList ID="logList" runat="server" 
     onselectedindexchanged="itemSelected"> 
</asp:DropDownList> 

Y esto es que la función, itemSelected:

protected void itemSelected(object sender, EventArgs e) 
{ 
    Response.Write("Getting clicked; " + sender.GetType().ToString()); 
    FileInfo selectedfile; 
    Response.Write("<script>alert('Hello')</script>"); 
    foreach (FileInfo file in logs) 
    { 
     if (file.Name == logList.Items[logList.SelectedIndex].Text) 
     { 
      Response.Write("<script>alert('Hello')</script>"); 
     } 
    } 
} 

Ninguno de aparecen las respuestas, y esa porción de JavaScript nunca se ejecuta. Probé esto en la última versión 3.6 de Firefox, así como en Internet Explorer 8. Esto se sirve desde una máquina con Windows Server 2003 R2, ejecutando ASP.Net con .NET Framework versión 4.

Si alguien puede ayudar, eso sería genial.

+0

Amigos, una respuesta ya ha sido dada y seleccionada, no es necesario continuar respondiendo esta pregunta. – TGP1994

Respuesta

340

Establezca la propiedad DropDownList AutoPostBack en true.

Ej:

<asp:DropDownList ID="logList" runat="server" AutoPostBack="True" 
     onselectedindexchanged="itemSelected"> 
    </asp:DropDownList> 
+3

Bueno, eso parece haberlo solucionado, gracias. ¿Puedes explicar porque? – TGP1994

+2

@ TGP1994: la propiedad AutoPostBack se usa para establecer o devolver si se produce o no una publicación automática atrás –

+1

Cuando estoy seleccionando la lista desplegable, va al primer valor de la lista –

72

intente configurar AutoPostBack="True" en DropDownList.

38

sé su bit Entrada antigua, pero aún así me gustaría añadir algo a las respuestas anteriores.

Puede haber alguna situación en la que el "valor" de más de un elemento de la lista desplegable esté duplicado/igual. Por lo tanto, asegúrese de que usted no tiene valores repetidos en los elementos de la lista para desencadenar este "OnSelectedIndexChanged" evento

1

insted de lo que ha escrito el código se puede escribir directamente en el evento SelectedIndexChanged del control DropDownList por ejemplo,

protected void ddlleavetype_SelectedIndexChanged(object sender, EventArgs e) 
{ 
*************** 
*********** 
**** 
} 
+0

Solo si la configuración de AutoEventWireup en la página aspx es verdadera, de lo contrario deberá hacerlo manualmente, como se indica en el ejemplo original. –

10

Añadir propiedad ViewStateMode="Enabled" y EnableViewState="true" Y AutoPostBack="true" en la caída de DROPDOWNLIST

Para más detalles click here

1

Para mi respuesta era atributo de página aspx, añadí asíncrono = "true" a los atributos de página y este resolvió mi problema

<%@ Page Language="C#" MasterPageFile="~/MasterPage/Reports.Master"..... 
    AutoEventWireup="true" Async="true" %> 

Esta es la estructura de mi panel de actualización

<div> 
    <asp:UpdatePanel ID="updt" runat="server"> 
    <ContentTemplate> 

     <asp:DropDownList ID="id" runat="server" AutoPostBack="true"  onselectedindexchanged="your server side function" /> 

    </ContentTemplate> 
    </asp:UpdatePanel> 
</div> 
2

También asegúrese de que la página es válida. Esto se puede comprobar en las herramientas de desarrollo de los navegadores (F12)

En la pestaña Consola de seleccionar la correcta/cuadro target y comprobar si la propiedad [Page_IsValid]

Si la página no es válida la forma no se someterá y por lo tanto, no disparar el evento.

+0

Vota por HerbalMart. En mi caso, la página no era válida, pero como uso el Telerik RadAjaxManager en mis páginas, el error no aparecía cuando lo probé en mi navegador. Cuando comenté todo el RadAjaxManager, se presentó el error y pude solucionarlo. – user2721607

Cuestiones relacionadas