asp.net - funciona - selectedindexchanged dropdownlist c#
El evento SelectedIndexChanged de DropDownList no se activa (7)
Agregar propiedad ViewStateMode="Enabled"
y EnableViewState="true"
Y AutoPostBack="true"
en drop DropDownList
Para más detalles haga clic aquí
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
. Trataré de publicar mi código aquí lo más ordenadamente posible:
Primero, el código HTML del objeto real:
<asp:DropDownList ID="logList" runat="server"
onselectedindexchanged="itemSelected">
</asp:DropDownList>
Y esta es esa 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>");
}
}
}
Ninguna de las respuestas aparece, 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 está publicando desde una máquina con Windows Server 2003 R2, ejecutando ASP.Net con .NET Framework versión 4.
Si alguien puede ayudar sería genial.
Establezca la propiedad DropDownList AutoPostBack
en verdadero.
P.ej:
<asp:DropDownList ID="logList" runat="server" AutoPostBack="True"
onselectedindexchanged="itemSelected">
</asp:DropDownList>
Para mí, la respuesta fue el atributo aspx page, agregué Async = "true" a los atributos de la página y esto 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>
Sé que es una publicación un poco más antigua, pero aún así me gustaría agregar algo a las respuestas anteriores.
Puede haber alguna situación en la que el " valor " de más de un elemento en la lista desplegable esté duplicado / igual. Por lo tanto, asegúrese de no tener valores repetidos en los elementos de la lista para desencadenar este evento " onselectedindexchanged "
También asegúrate de que la página sea válida. Puede verificar esto en las herramientas de desarrollo de navegadores (F12)
En la pestaña Consola, seleccione el objetivo / marco correcto y busque la propiedad [Page_IsValid]
Si la página no es válida, el formulario no se enviará y, por lo tanto, no activará el evento.
dependiendo de lo que haya escrito, puede escribirlo directamente en el evento SelectedIndexChanged del control de lista desplegable, por ejemplo,
protected void ddlleavetype_SelectedIndexChanged(object sender, EventArgs e)
{
***************
***********
****
}
intente configurar AutoPostBack="True"
en DropDownList.