Bienvenue à Blogs CodeS-SourceS Identification | Inscription | Aide

Atteint de JavaScriptite Aiguë [Cyril Durand]

Expert ASP.net Ajax et WCF, Cyril Durand parle dans son blog de point techniques sur ASP.net, ASP.net Ajax, JavaScript, WCF et .net en général. Cyril est également consultant indépendant, n'hésitez pas à le contacter pour de l'assistance sur vos projets

Actualités

  • Blog de Cyril DURAND, passionné de JavaScript, Ajax, ASP.net et tout ce qui touche au developpement Web Client-Side.

    N'hésitez pas à me contacter pour vos projets .net : architecture, accompagnement, formation, ...

    View Cyril Durand's profile on LinkedIn
    hit counters


    Expertise Commerce server et BizTalk

UpdatePanel - Comment eviter d'afficher le messagebox a chaque erreur

Par défaut lorsqu'il y a une erreur lors d'un AsyncPostBack, c'est à dire lors d'un rafraichissement d'UpdatePanel,  le message d'erreur est remonté au client sous la forme d'un messageBox/alert.

void btn1_Click(Object sender, EventArgs e) { int a = 0; int i = 3 / a; }

<asp:UpdatePanel ID="up1" runat="server"> <ContentTemplate> <asp:Button ID="btn1" runat="server" OnClick="btn1_Click" Text="error" /> <asp:Button ID="btn2" runat="server" Text="pas error" /> <%=DateTime.Now.ToLongTimeString() %> </ContentTemplate> </asp:UpdatePanel>

En exécutant ce code vous obtiendrez une messagebox "Attempted to divide by zero" Ce qui n'est pas des plus user-friendly, surtout lorsque le message d'erreur contient des informations critiques.  

Il existe de nombreuses solutions pour faire face à ce problème :

Utilisation de la propriété AllowCustomErrorsRedirect

Si cette propriété est vrai, en cas d'erreur l'utilisateur sera redirigé vers les pages d'erreurs personalisées définies dans le web.config :

<customErrors mode="On"> <error redirect="error.html" statusCode="500"/> </customErrors>

Par défaut cette propriété est à false.

Utilisation de la propriété AsyncPostBackErrorMessage

Cette propriété définit un message d'erreur personnalisé, lorsque cette propriété est définit on obtiendra plus d'alert avec les informations "critiques" mais le texte définit via la propriété. Par exemple "une erreur est survenue".

Utilisation des événements du PageRequestManager

Cette solution ce sert des différents événements du PageRequestManager à savoir :

Cette solution nous permet une très grande souplesse au niveau de l'affichage de l'erreur, dans l'exemple ci dessous je ne fais qu'afficher le texte de l'erreur dans un div mais on peut très bien imaginer afficher une modalPopup qui explique l'erreur.

<script type="text/javascript"> window.pageLoad = function(){ Sys.WebForms.PageRequestManager.getInstance().add_beginRequest(function(sender, e){ var elmt = $get('asyncPostBackError'); while (elmt.hasChildNodes()){ elmt.removeChild(elmt.firstChild); } }); Sys.WebForms.PageRequestManager.getInstance().add_endRequest(function(sender, e){ if (e.get_error() != null && !e.get_errorHandled()){ var textNode = document.createTextNode(e.get_error().message); $get('asyncPostBackError').appendChild(textNode); e.set_errorHandled(true) } }); } </script>

N'oubliez pas non plus de logger les erreurs comme expliqué dans ce post : UpdatePanel : comment logger les erreurs lors de son rafraichissement en utilisant le Health Monitoring

Posted: samedi 30 juin 2007 12:10 par cyril
Ce post vous a plu ? Ajoutez le dans vos favoris pour ne pas perdre de temps à le retrouver le jour où vous en aurez besoin :

Commentaires

Pas de commentaires

Les commentaires anonymes sont désactivés

Les 10 derniers blogs postés

- Merci par Blog de Jérémy Jeanson le 10-01-2019, 20:47

- Office 365: Script PowerShell pour auditer l’usage des Office Groups de votre tenant par Blog Technique de Romelard Fabrice le 04-26-2019, 11:02

- Office 365: Script PowerShell pour auditer l’usage de Microsoft Teams de votre tenant par Blog Technique de Romelard Fabrice le 04-26-2019, 10:39

- Office 365: Script PowerShell pour auditer l’usage de OneDrive for Business de votre tenant par Blog Technique de Romelard Fabrice le 04-25-2019, 15:13

- Office 365: Script PowerShell pour auditer l’usage de SharePoint Online de votre tenant par Blog Technique de Romelard Fabrice le 02-27-2019, 13:39

- Office 365: Script PowerShell pour auditer l’usage d’Exchange Online de votre tenant par Blog Technique de Romelard Fabrice le 02-25-2019, 15:07

- Office 365: Script PowerShell pour auditer le contenu de son Office 365 Stream Portal par Blog Technique de Romelard Fabrice le 02-21-2019, 17:56

- Office 365: Script PowerShell pour auditer le contenu de son Office 365 Video Portal par Blog Technique de Romelard Fabrice le 02-18-2019, 18:56

- Office 365: Script PowerShell pour extraire les Audit Log basés sur des filtres fournis par Blog Technique de Romelard Fabrice le 01-28-2019, 16:13

- SharePoint Online: Script PowerShell pour désactiver l’Option IRM des sites SPO non autorisés par Blog Technique de Romelard Fabrice le 12-14-2018, 13:01