J'ai un bouton "Enregistrer" sur un FormView avec le jeu CommandName = "Mise à jour". Ce bouton met à jour un EntityDataSource lié au FormView. Après la mise à jour de l'EDS, je souhaite fermer cette fenêtre (enfant, fenêtre contextuelle) et rafraîchir ma fenêtre parente (afin qu'elle reflète les modifications apportées aux données).Comment mon bouton peut-il fermer la fenêtre et actualiser le parent après la mise à jour de formview?
Pour référence, j'ai un même bouton « Annuler » sur cette page qui appelle simplement une fonction Javascript « OnClientClick »:
function done() {
if (window.opener.closed) {
self.close();
} else {
window.opener.focus();
window.opener.location.href = opener.location;
self.close();
}
}
Maintenant, comment puis-je laisser le FormView et EDS faire son travail (processus la commande Update) puis appelez cette fonction javascript (ou code pour accomplir l'équivalent) ??? Après avoir creusé un peu plus, j'ai résolu le problème. Le problème était lié au fait que FormView se trouvait dans un panneau de mise à jour. Je devais utiliser les éléments suivants:
ScriptManager.RegisterClientScriptBlock(this.UpdatePanel1, typeof(string), "done", "done();", true);
Était-ce un dialogue modal? Je m'inquiéterais d'être compaabulable par navigateur. – Jeroen
Non, juste une page aspx. Il doit seulement fonctionner avec IE et c'est le code qui s'exécute sur un serveur Web JSP que je porte sur .Net. Le script a fonctionné pour nos utilisateurs sans problèmes pendant des années. J'ai juste besoin de comprendre comment l'appeler (ou accomplir la même chose) du code derrière. :) – Shayne