2009-05-29 14 views
1

Supposons que j'ai un bouton dans une page aspx qui effectue une sauvegarde des données de formulaire dans la base de données. Dans le gestionnaire d'événements associé, avant d'envoyer les mises à jour, j'ai lu quelque chose d'un service Web, opération qui pourrait entraîner une exception. En cas d'erreur, je souhaite qu'un message adéquat s'affiche sur la page et que toutes les données du formulaire soient conservées. Comment puis-je atteindre cet objectif? De plus, toutes mes pages héritent d'une page de base, donc je voudrais, si possible, avoir tout le code de gestion des erreurs dans la classe de base. Je ne veux pas, si possible, entourer tout appel de service Web avec des blocs try-catch, je serais en cas d'exception non gérée pour appeler une méthode automatiquement, quelque chose comme Page_error, mais conserve les données dans mes formulaires.Gestion des exceptions d'événements de contrôle ASP.NET

Répondre

1

Vous pouvez facilement mettre une méthode qui gère le message d'affichage (peut-être définir le texte de errorMessageLabel) dans une superclasse appelée à partir de n'importe quelle classe dérivée (si vous voulez utiliser un héritage pour configurer un modèle pour vos pages) thrown (vous pouvez placer l'appel à la méthode superclas dans un bloc catch si une exception est réellement levée ou vous pouvez le gérer manuellement si le webservice n'est pas disponible selon votre style de programmation). Pour préserver les données présentées, si viewstate est activé et que vous ne remplissez pas dynamiquement votre page, alors vous êtes ok. Dans le cas contraire, vous devez enregistrer explicitement les informations d'état dans viewState ou les entrées de session et les récupérer si quelque chose ne va pas. Ce bit dépend vraiment de la façon dont votre page est implémentée.

Questions connexes