Estoy tratando de crear una devolución de datos asincrónica en ASP.NET usando __doPostBack()
, pero no tengo idea de cómo hacerlo. Quiero usar JavaScript de vainilla.
Algo simple como hacer clic en un botón puede hacer que el __doPostBack()
evento se active . Solo estoy tratando de aprender cómo funciona el mecanismo.
c#
javascript
asp.net
postback
Michael Kerute
fuente
fuente
__doPostBack
no es realmente compatible. Si su página no tiene nada que active una devolución de datos, asp.net podría omitir la definición de la__doPostBack
función. El enfoque admitido es llamarClientScriptManager.GetPostBackEventReference
, que devuelve una cadena en el formulario__doPostBack(...)
y garantiza que__doPostBack
esté definida.Respuestas:
Puede intentar esto en su formulario web con un botón llamado btnSave, por ejemplo:
Y en su código detrás, agregue algo como esto para leer el valor y operar sobre él:
Pruébalo y dinos si eso funcionó para ti.
fuente
Esta también es una buena manera de hacer que los controles del lado del servidor devuelvan información dentro de FancyBox y / o jQuery Dialog . Por ejemplo, en FancyBox-div:
JavaScript:
Page_Load del lado del servidor:
fuente
ClientIDMode="Static"
atributo deMyButton
, para que ASP no altere la ID del botón.Aquí hay un breve tutorial sobre cómo
__doPostBack()
funciona.Para ser sincero, no lo uso mucho; al menos directamente Muchos controles de servidor, (por ejemplo,
Button
,LinkButton
,ImageButton
, partes de laGridView
, etc.) el uso__doPostBack
como su mecanismo de nuevo poste.fuente
Solo me gustaría agregar algo a esta publicación
asp:button
. He intentado clientId y no parece funcionar para mí:Sin embargo, obtener el UniqueId parece volver a publicarse en el servidor, como a continuación:
Esto podría ayudar a alguien más en el futuro, por lo tanto, publicar esto.
fuente
ClientID
porque estaba usandoClientIDMode = Static
. UtilizandoUniqueID
trabajado.Antigua pregunta, pero me gustaría agregar algo: al llamar
doPostBack()
puede usar el método de controlador de servidor para la acción.Para un ejemplo:
Se disparará, en el servidor:
No encontré una mejor manera de obtener el argumento, así que todavía estoy usando
Request["__EVENTARGUMENT"]
.fuente
Como han dicho otros, debe proporcionar el UniqueID del control al método __doPostback ().
En el servidor, los valores de formulario enviados se identifican por el atributo de nombre de los campos en la página.
La razón por la que UniqueID funciona es porque UniqueID y nombre son, de hecho, lo mismo cuando el control del servidor se representa en HTML.
Aquí hay un artículo que describe qué es UniqueID:
fuente
Así es como lo hago
fuente