Pregunta

Tengo un ASP.NET 1.1 aplicación, y estoy tratando de averiguar por qué cuando yo cambio un ComboBox que el valor es utilizado para llenar otro (padre-hijo, relación), dos de las devoluciones se producen.

He comprobado y verificado el código, y no puedo encontrar la causa.

Aquí están ambos pilas de llamadas que terminan en un page_load

Primera devolución (generado por el ComboBox del autopostback)

Devolución de la pila de llamadas http://www.juanformoso.com.ar/images/callstack1.jpg

Segundo devolución (esto es lo que quiero saber por qué está pasando)

texto alt http://www.juanformoso.com.ar/images/callstack2.jpg

Alguna sugerencia?Lo puedo comprobar?

¿Fue útil?

Solución

Es un problema muy específico con este código, dudo que va a ser de utilidad para alguien más, pero aquí va:

Un cheque que fue agregado el combo onchange con un si, si la condición se ha cumplido, una llamada explícita a la devolución de la función se hizo.Si el combo se establece en AutoPostback, asp.net añadido el de devolución de llamada de nuevo, la producción de los dos devoluciones...

El código html generado era como este:

[select onchange="javascript: if (CustomFunction()){__doPostBack('name','')}; __doPostBack('name','')"]

Otros consejos

Primera cosa que me gustaría ver es que usted no tiene el segundo ComboBox de la propiedad AutoPostBack establece en true.Si cambia el valor en el segundo combo con ese conjunto de propiedades cierto, creo que va a generar una devolución de datos en dicho control.

¿Tienes algún código que puedes compartir?Doble post espaldas me plagado tanto en ASP clásico en el día que fue lo que finalmente me llevó a cambiar .NETO de una vez por todas.Siempre tengo problemas como estos para .NET, voy a cada CONTROL y cada elemento de la PÁGINA, como de carga, init, prerender, haga clic en, SelectedIndexChanged, y similares, y poner un punto de interrupción.

Incluso si no tengo el código de allí, voy a insertar algo como:

Dim i As Integer
i = 0

Normalmente soy capaz de localizar alguna acción que no me esperaba y corregir según sea necesario.Yo sugeriría hacerlo aquí.

La buena suerte.

Verificación De La Solicitud.Formulario["__EVENTTARGET"] para buscar el control de iniciar la devolución de datos - que pueden ayudar a reducirla.

Mirando el callstacks, y algunos Reflectoring (en ASP.NET 2 - yo no tengo la 1.1 a la mano) - parece que SessionStateModule.PollLockedSessionCallback es parte de la HttpApplication de inicio de las rutinas.Es posible que su aplicación está siendo reciclado - estoy bastante seguro de que un evento se presenta escrito en el registro de Sucesos para que.

Mi única otra sugerencia sería Fiddler o algo en el cliente para capturar el tráfico HTTP.

Esto es muy viejo el post, pero la gente sigue mirando este para la solución exactamente igual que lo hice la semana pasada.

Como Grengby Doble eventos son las principales razones, pero la eliminación de uno de ellos no es siempre una opción.Al menos en mi caso y yo tenía que resolver esto en la 3ª parte de la aplicación.

He añadido la siguiente secuencia de comandos y modificado ASP forma en la masterpage:

<script>var Q = 0;</script>
<form id="Form1" runat="server" onsubmit="Q++; if(Q==1){return true;} else { return false;}">

Esto parece estar funcionando y por favor remitir sus comentarios.

Arun

http://www.velocityreviews.com/forums/t117900-asp-net-multiple-postback-issue.html

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top