¿Hay alguna manera de forzar una devolución de datos en el código?Forzar una devolución de datos
Estoy buscando forzar el aumento de una devolución de datos desde un método en el código C# detrás de mi aplicación web asp.net.
¿Hay alguna manera de forzar una devolución de datos en el código?Forzar una devolución de datos
Estoy buscando forzar el aumento de una devolución de datos desde un método en el código C# detrás de mi aplicación web asp.net.
una devolución de datos se activa después de un envío del formulario, por lo que está relacionado con una acción del cliente ... echar un vistazo aquí para una explicación: ASP.NET - Is it possible to trigger a postback from server code?
y aquí para una solución: http://forums.asp.net/t/928411.aspx/1
¡Esto funcionó! ¡Gracias! –
Para quienes usan las versiones más nuevas de .NET, debe usar 'Page.ClientScript.GetPostBackEventReference' ya que 'this.GetPostBackEventReference (...)' está obsoleto. También probablemente 'Page.ClientScript.RegisterStartupScript (...)'. – AzNjoE
No, no desde el código de atrás. Una devolución de datos es una solicitud iniciada desde una página en el cliente a sí misma en el servidor utilizando el método Http POST. En el lado del servidor puede solicitar una redirección, pero la solicitud será Http GET.
Puede llamar manualmente el método invocado por PostBack del evento Page_Load
:
public void Page_Load(object sender, EventArgs e)
{
MyPostBackMethod(sender, e);
}
Pero si te refieres a si se puede tener el conjunto Page.IsPostBack
propiedad a true
sin cargo real de espalda, entonces la respuesta es no.
Puede usar un control vinculado a datos como Repeater
o ListView
, vuelva a vincularlo a una lista de propiedades de control según sea necesario y deje que genere los controles dinámicamente.
Como alternativa, puede usar Response.Redirect(".")
para volver a cargar la misma página.
Puede intentar el redireccionamiento a la misma página.
Response.Redirect(Request.RawUrl);
Pero luego se pierden los valores del formulario ... –
@Protectorone no a menos que ViewState [] primero y vuelva a cargar en la posterior devolución de datos en Page_Load() – Fandango68
más simple:
ScriptManager.RegisterStartupScript(this.Page, this.Page.GetType(), "DoPostBack", "__doPostBack(sender, e)", true);
Mediante el uso de Server.Transfer ("YourCurrentPage.aspx"); podemos lograr esto fácilmente y es mejor que Response.Redirect(); coz Server.Transfer() te ahorrará el viaje de ida y vuelta.
¿Esto no restablece los campos del formulario? Supongo que es como una nueva llamada de página, lo que significa que las entradas de usuario como los filtros se deshacerían (si no están almacenados en la sesión). – Undercover1989
Aquí la solución de http://forums.asp.net/t/928411.aspx/1 mencionada por mamoo - en caso de que el sitio web se desconecte. Funcionó bien para mí
StringBuilder sbScript = new StringBuilder();
sbScript.Append("<script language='JavaScript' type='text/javascript'>\n");
sbScript.Append("<!--\n");
sbScript.Append(this.GetPostBackEventReference(this, "PBArg") + ";\n");
sbScript.Append("// -->\n");
sbScript.Append("</script>\n");
this.RegisterStartupScript("AutoPostBackScript", sbScript.ToString());
¿Puede ser más específico, y cuéntenos qué enfoques ha intentado hasta ahora? –
eh, una devolución de datos es del cliente (navegador) al servidor. Entonces el código C# (que se ejecuta en el servidor) no puede hacer eso. –
Creo que su pregunta es similar a la planteada [aquí] (http://stackoverflow.com/questions/1418532/how-to-force-a-postback-with-asp-net-and-c-sharp) – seanzi