Foros del Web » Programando para Internet » ASPX (.net) »

Problema con Dropdownlist SelectedIndexChange no se dispara

Estas en el tema de Problema con Dropdownlist SelectedIndexChange no se dispara en el foro de ASPX (.net) en Foros del Web. Hola a todos, tengo un Dropdownlist asi como este: <asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="True" onselectedindexchanged="DropDownList1_SelectedInde xChanged"> </asp:DropDownList> protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e) { Response.Write("DropDownList1_SelectedIndexChanged Fire"); ...
  #1 (permalink)  
Antiguo 30/08/2010, 01:46
 
Fecha de Ingreso: mayo-2009
Mensajes: 14
Antigüedad: 14 años, 11 meses
Puntos: 0
Pregunta Problema con Dropdownlist SelectedIndexChange no se dispara

Hola a todos, tengo un Dropdownlist asi como este:

<asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="True"
onselectedindexchanged="DropDownList1_SelectedInde xChanged">
</asp:DropDownList>

protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
{
Response.Write("DropDownList1_SelectedIndexChanged Fire");
}

Luego tengo una funcion en javascript en que lleno el Dropdownlist es esta:

<script type="text/javascript" language="javascript">
window.onload = bindDdl;

function bindDdl()
{
// Create an Option object
var opt = document.createElement("option");

// Add an Option object to Drop Down/List Box
document.getElementById("DropDownList1").options.a dd(opt);
// Assign text and value to Option object
opt.text = "Hola Mundo";
opt.value = "Hola Mundo";

var opt1 = document.createElement("option");

// Add an Option object to Drop Down/List Box
document.getElementById("DropDownList1").options.a dd(opt1);
// Assign text and value to Option object
opt1.text = "Hola Mundo1";
opt1.value = "Hola Mundo1";
}
</script>

El problema es que cuando selecciono un item del Dropdownlist, me sale este error:

Argumento de devolución o de devolución de llamadas no válido. La validación de eventos se habilita usando <pages enableEventValidation="true"/> en la configuración o <%@ Page EnableEventValidation="true" %> en una página.

Hago lo que dice el error pongo en el web.config <pages enableEventValidation="false"/> y no sale el error pero el SelectedIndexChange no se dispara, lo cambio en la directiva de la pagina <%@ Page EnableEventValidation="false" %> y tampoco se dispara, y lo cambio en ambos y tampoco se dispara. Alguna sugerencia al respecto.
  #2 (permalink)  
Antiguo 31/08/2010, 08:35
 
Fecha de Ingreso: mayo-2009
Mensajes: 14
Antigüedad: 14 años, 11 meses
Puntos: 0
Respuesta: Problema con Dropdownlist SelectedIndexChange no se dispara

Ayuda por favor
  #3 (permalink)  
Antiguo 31/08/2010, 08:43
Avatar de InvitadoDDD  
Fecha de Ingreso: mayo-2010
Mensajes: 53
Antigüedad: 13 años, 11 meses
Puntos: 0
Respuesta: Problema con Dropdownlist SelectedIndexChange no se dispara

El error te dice que pongas en la cabecera de tu pagina (html)
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="pagina.aspx.cs" Inherits="Publico_pagina" EnableEventValidation="true" %>

pero que le pongas TRUE...prueba eso..

saludos
__________________
"Lo que paso ya paso"
-- Juan Gabriel
  #4 (permalink)  
Antiguo 31/08/2010, 08:45
Avatar de InvitadoDDD  
Fecha de Ingreso: mayo-2010
Mensajes: 53
Antigüedad: 13 años, 11 meses
Puntos: 0
Respuesta: Problema con Dropdownlist SelectedIndexChange no se dispara

me parece ke en esta linea de tu escript se te paso un espacio....revisa
document.getElementById("DropDownList1").options.a dd(opt);
__________________
"Lo que paso ya paso"
-- Juan Gabriel
  #5 (permalink)  
Antiguo 01/09/2010, 06:43
 
Fecha de Ingreso: mayo-2009
Mensajes: 14
Antigüedad: 14 años, 11 meses
Puntos: 0
Respuesta: Problema con Dropdownlist SelectedIndexChange no se dispara

Hola gracias por responder, he probado todas las combinaciones en la cabecera de la pagina y en el web.config con el EnableEventValidation, lo he puesto en false en true, lo pongo lo quito, etc, y sigue sin funcionar. El espacio en blanco debe de ser cuando lo copie aqui.
Si puedes prueba el codigo que puse y comprueba para que veas el error que da. No se que pueda ser, y en internet no encuentro nada que me pueda orientar. Un saludo.
  #6 (permalink)  
Antiguo 01/09/2010, 09:13
Avatar de claudiovega  
Fecha de Ingreso: octubre-2003
Ubicación: Puerto Montt
Mensajes: 3.667
Antigüedad: 20 años, 6 meses
Puntos: 11
Respuesta: Problema con Dropdownlist SelectedIndexChange no se dispara

Prueba llenando el dropdownlist desde c# en el evento page_load.
  #7 (permalink)  
Antiguo 01/09/2010, 09:15
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 3 meses
Puntos: 447
Mensaje Respuesta: Problema con Dropdownlist SelectedIndexChange no se dispara

Cita:
Iniciado por ramo2712 Ver Mensaje
Hola gracias por responder, he probado todas las combinaciones en la cabecera de la pagina y en el web.config con el EnableEventValidation, lo he puesto en false en true, lo pongo lo quito, etc, y sigue sin funcionar. El espacio en blanco debe de ser cuando lo copie aqui.
Si puedes prueba el codigo que puse y comprueba para que veas el error que da. No se que pueda ser, y en internet no encuentro nada que me pueda orientar. Un saludo.
Buenos días ramo2712, no estoy muy letrado en este tema, pero creo que el problema está en que llenas el DropDownlist desde javascript, es decir en el cliente, mientras que el evento que estás tratando de ejecutar se encuentra en el servidor. ¿por qué no intentas llenar tu DropDownList en el evento Page_Load de tu pagina? es decir, del lado del servidor. Con el IsPostBack verificas que sólo la primera vez que se carga la página se llene el DDL


Código ASP:
Ver original
  1. protected void Page_Load(object sender, EventArgs e) {
  2.         if (!Page.IsPostBack) {
  3.             ListItem item = new ListItem("Hola Mundo", "Hola Mundo");
  4.             this.DropDownList1.Items.Add(item);
  5.             item = new ListItem("Hola Mundo 2", "Hola Mundo 2");
  6.             this.DropDownList1.Items.Add(item);
  7.         }
  8.     }

En cuanto al mensaje de error creo que se refiere a que en tu web.config en la etiqueta pages coloques esto:

Código XML:
Ver original
  1. <pages validateRequest="false" enableEventValidation="false">
  2. ...
  3. </pages>

o

Código XML:
Ver original
  1. <pages validateRequest="false" enableEventValidation="false" />

Saludos
Leo
  #8 (permalink)  
Antiguo 01/09/2010, 09:17
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 3 meses
Puntos: 447
Respuesta: Problema con Dropdownlist SelectedIndexChange no se dispara

Ops... creo que claudiovega se me adelantó dos minutos con la respuesta jejeje...

Saludos.
  #9 (permalink)  
Antiguo 01/09/2010, 09:55
 
Fecha de Ingreso: mayo-2009
Mensajes: 14
Antigüedad: 14 años, 11 meses
Puntos: 0
Respuesta: Problema con Dropdownlist SelectedIndexChange no se dispara

Hola leonardo, ya probe con poner en <pages> lo que me dices en este caso no lanza el error pero no dispara el evento.
Y ¿porque javascript? y porque no digo yo, esto no deberia pasar, algo he hecho mal lo que no se que es. Creo que los tiros van por el html dinamico que se crea

<select name="DropDownList1" onchange="javascript:setTimeout('__doPostBack(\'Dr opDownList1\',\'\')', 0)" id="DropDownList1">

este setTimeout, es el que da el coñaso.

Por otra parte hacerlo con javascript no es un capricho, es un requisito indispensable porque el proyecto es para una blackberry y estoy usando Ajax
pero no puedo utilizar los componentes del asp.net ajax porque en blackberry
no van bien. Por lo tanto estoy utilizando el objeto XMLHttpRequest y Handler.ashx donde devuelvo el contenido en forma de xml context.Response.ContentType = "text/xml"; y posteriormente en la funcion:
function onCallBack() {
if (xmlHttp.readyState == 4) {
if (xmlHttp.status == 200) {
bindDdl(xmlHttp.responseXML.documentElement);
}
else {
alert('Error al procesar la información. Error status: ' + xmlHttp.status);
}
}
}

recojia el xml y llenaba el DropDownList, pero como me vez me dio este error, al principio pense que era por el ajax, pero probe sin ajax y el error viene por el javascript y si reproduces el codigo que puse en el ejemplo lo puedes ver claramente, un saludo y muchas gracias por responder.
  #10 (permalink)  
Antiguo 01/09/2010, 10:13
Avatar de claudiovega  
Fecha de Ingreso: octubre-2003
Ubicación: Puerto Montt
Mensajes: 3.667
Antigüedad: 20 años, 6 meses
Puntos: 11
Respuesta: Problema con Dropdownlist SelectedIndexChange no se dispara

Si vas trabajar con Ajax es mejor que controles el evento OnChange con Ajax así no haces una mezcla de ajax y webforms.
  #11 (permalink)  
Antiguo 01/09/2010, 10:23
 
Fecha de Ingreso: mayo-2009
Mensajes: 14
Antigüedad: 14 años, 11 meses
Puntos: 0
Respuesta: Problema con Dropdownlist SelectedIndexChange no se dispara

No me es posible porque el SelectedindexChange me tiene que crear un gridview
y es complicado en extremo hacerlo con elementos html.
Pero como dije el problema no es el ajax puesto que si creas un nuevo proyecto y adicionas un DropDownList y pones Autopostback="true" y le das doble clic para que se cree el evento SelectedindexChange y cojes y en una funcion javascript lo llenas luego te da este error que em da a mi, osea que el ajax no interviene, si quieres pruebalo.
  #12 (permalink)  
Antiguo 01/09/2010, 13:11
Avatar de claudiovega  
Fecha de Ingreso: octubre-2003
Ubicación: Puerto Montt
Mensajes: 3.667
Antigüedad: 20 años, 6 meses
Puntos: 11
Respuesta: Problema con Dropdownlist SelectedIndexChange no se dispara

Por eso decía, no pongas autopostback, programa en javascript el evento onchange. En este evento, llama a una función javascript que invoque a un procedimiento en el servidor el cual creará un gridview usando por ejemplo un user control y que devuelve ese html generado y luego lo escribe en un div usando div.innerHTML().
  #13 (permalink)  
Antiguo 01/09/2010, 14:06
 
Fecha de Ingreso: mayo-2009
Mensajes: 14
Antigüedad: 14 años, 11 meses
Puntos: 0
Respuesta: Problema con Dropdownlist SelectedIndexChange no se dispara

Si bueno me has dado una idea de como hacerlo de otra forma, puedo crear un <asp:Button ...> y en el onclick en el servidor creo el grid view a partir de un valor
que dejo en un hiden field, y pongo el AutoPostBack en false y el onchange lo cojo con javascript y pongo el valor en el hiden field y ejecuto el onclick del boton
desde javascript. Asi lo podria hacer perfectamente, mañana me pongo en ello.

Pero todavia esta mi duda en el problema y en el error como tal que me dio en un principio.

Etiquetas: dropdownlist, aspx
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:43.