Y a-t-il un moyen de forcer une publication dans le code?
Je cherche à forcer la levée d'un postback à partir d'une méthode dans le code c # derrière mon application web asp.net.
Une publication est déclenchée après la soumission d'un formulaire, elle est donc liée à une action du client ........ Regardez ici pour une explication: ASP.NET - Est-il possible de déclencher une publication à partir du code serveur?
et voici une solution: http://forums.asp.net/t/928411.aspx/1
Vous pouvez essayer de rediriger vers la même page.
Response.Redirect(Request.RawUrl);
Plus simple:
ScriptManager.RegisterStartupScript(this.Page, this.Page.GetType(), "DoPostBack", "__doPostBack(sender, e)", true);
Voici la solution de http://forums.asp.net/t/928411.aspx/1 telle que mentionnée par mamoo - juste au cas où le site web serait déconnecté. A bien fonctionné pour moi.
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());
Vous pouvez utiliser un contrôle lié aux données tel que Repeater
ou ListView
, le lier à une liste de propriétés de contrôle si nécessaire et le laisser générer les contrôles de manière dynamique.
Vous pouvez également utiliser Response.Redirect(".")
pour recharger la même page.
Non, pas de code derrière. Une publication est une demande initiée par une page du client sur le serveur à l'aide de la méthode Http POST. Du côté du serveur, vous pouvez demander une redirection mais la requête sera HTTP GET.
Vous pouvez appeler manuellement la méthode appelée par PostBack à partir de l'événement Page_Load
:
public void Page_Load(object sender, EventArgs e)
{
MyPostBackMethod(sender, e);
}
Mais si vous voulez dire que si la propriété Page.IsPostBack
est définie sur true
sans publication réelle, la réponse est non.
En utilisant Server.Transfer ("Your Current Page.aspx"); nous pouvons facilement y parvenir et c'est mieux que Response.Redirect (); coz Server.Transfer () vous fera économiser l'aller-retour.