Comment puis-je forcer un post-back complet à partir d’un bouton dans un UpdatePanel?
Vous pouvez utiliser la propriété Triggers de UpdatePanel pour enregistrer les actions qui déclenchent une publication complète.
Ajoutez un object PostBackTrigger à cette propriété, contenant le ControlID du contrôle qui doit déclencher une publication complète.
...
Il suffit d’append ceci parce que personne d’autre n’a. Il est possible de le faire en code-behind dans une seule ligne de code sans aucune des méthodes ci-dessus. Il suffit de mettre ceci dans page_load:
Visual Basic
ScriptManager.GetCurrent(Me).RegisterPostBackControl(myButtonID)
C #
ScriptManager.GetCurrent(this).RegisterPostBackControl(myButtonID);
De là :
Utilisez le contrôle PostBackTrigger pour activer les contrôles à l’intérieur d’un UpdatePanel pour provoquer une publication au lieu d’effectuer une publication asynchrone.
J’ai eu le même problème en utilisant un ImageButton dans un WebDataGrid.
Je mets la ligne de EvilDr dans le pré-rendu pour le webdatagrid à la place. Travaillé super!
for (int i = 0; i < wdgMyData.Rows.Count; i++) { ScriptManager.GetCurrent(this).RegisterPostBackControl((ImageButton)wdgMyData.Rows[i].Items[3].FindControl("btnDownloadExcel")); }
C’est une vieille question, il y a une approche un peu délicate, quand tout est dans les panneaux de mise à jour et que vous voulez faire un post complet pour que votre code Document.Ready fonctionne en cliquant.
1. Créez un bouton factice en dehors du panneau de mise à jour et cliquez dessus depuis le code comme ceci
ScriptManager.RegisterStartupScript(Page, this.GetType(), "ResetDoc", "ResetDocumentReady();", true);
2. Définissez la fonction sur le front-end comme ceci
function ResetDocumentReady() { $("[id$=DummyButton]").click(); }
REMARQUE: la meilleure méthode consiste à utiliser le déclencheur, la réponse publiée par @Thibault Falise 🙂