Pregunta

He examinado preguntas similares sobre Stack Overflow pero no he podido encontrar la solución a este problema en particular. Tengo una página ASP.NET simple (no realmente, pero pretendamos) con un panel de actualización dentro.

En este panel de actualización hay un control HiddenField con un valor que se establecerá / actualizará a través de mi propio JavaScript personalizado. El valor está actualizado como puedo ver en el DOM usando Firebug.

Al lado de este HiddenField hay un LinkButton que llama al JavaScript para modificar el valor del HiddenField usando OnClientClick (esto funciona). El LinkButton también tiene un controlador OnClick que se ejecuta después de que se haya modificado el valor.

Sin embargo, en el controlador OnClick , obtengo el valor inicial de HiddenField y no el valor establecido por JavaScript

¿Por qué es esto? ¿Es este un caso de " PEBKAC " ;?

EDITAR: Intenté lo mismo con un TextBox sin ningún éxito. También intenté modificar el valor manualmente usando Firebug antes de enviar el formulario, sin ningún éxito.

EDIT 2: Me acabo de dar cuenta de que Page_Load se llama antes que el manejador OnClick , que estaba arruinando las cosas. No eliminaré la pregunta, ya que otras personas pueden tener el mismo problema y encontrar esta pregunta valiosa.

¿Fue útil?

Solución

Tendrá que hacerlo utilizando el evento EndRequestHandler, provisto por el Panel de actualización de AJAX.

Por favor mira esto - >

http://www.codeproject.com/KB/ajax /AfterAjaxUpdate.aspx?display=Print

Otros consejos

Esto me parece como si el estado de la vista te hiciera una broma mala (tan a menudo). Lo que supongo es que cuando la página vuelve a publicarse, el campo oculto se inicializa con el valor contenido en Viewstate.

Pruebe una cosa: no acceda al valor directamente a través de yourHiddenField.Value pero en el OnInit de su página consígalo con Request.Forms [yourHiddenField.UniqueId] y lanzarlo a un HiddenField y extraer el valor. No estoy seguro de si esta es la sintaxis correcta. El " publicado " los valores deben estar en el objeto Solicitud en algún lugar si no recuerdo mal. Vea si obtiene el valor allí. Si lo obtiene allí, el problema es el estado de vista que se asigna de nuevo después del evento OnInit de la página. Entonces tenemos que encontrar una solución para eso ...

¿Cómo está generando la nueva entrada en el cliente? ¿Sería posible realizar esto en el servidor en su lugar?

De esta manera, puede usar solo OnClick en lugar de OnClick y OnClientClick .

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