IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ASP.NET Discussion :

bug sur les linkbutton dans un controle utilisateur web


Sujet :

ASP.NET

  1. #1
    Futur Membre du Club
    Inscrit en
    Janvier 2006
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 11
    Points : 8
    Points
    8
    Par défaut bug sur les linkbutton dans un controle utilisateur web
    Bonjour,

    J'ai déjà plusieurs sites web à mon actif en asp.net avec des contrôles utilisateurs pour la connexion des clients dans chacune des pages et là je ne sais pas pourquoi, dans certaines pages, mes linkbutton et j'ai essayé en utilisant des button, j'arrive au même résultat, tous me renvoi automatiquement à ma page default.aspx sans avoir fait les opérations liées au bouton.

    Mon gros problème est qu'en local tous marche parfaitement dans toute les pages du site mais dès que je met les pages en ligne, sur les pages de chapitres et pages de contenu, impossible de faire fonctionner les boutons, à chaque clic j'ai un retour sur la page default.aspx sans qu'aucun evenement ne se produise.

    Pour voir le site : http://www.s-n-l.fr au départ le bloc de login en haut à gauche présent sur la page d'accueil l'était sur toute les pages du site sauf la page login.aspx et la page register.aspx (voir site http://www.huilesrares.com où ce bloc login marche très bien dans toute les pages). mais comme les boutons de connexion et rappel de mot de passe au lieu de s'exécuter normalement renvoyait vers la page d'accueil sans s'exécuter, j'ai du supprimer ce bloc de presque toute les pages.

    Du coup, j'ai aussi du supprimer le formulaire d'envoi de message mail qui ne fonctionnait pas dans la page contact et fesait la même chose soit un retour vers la page d'accueil sans que l'envoi de mail soit exécuté.

    Merci de votre aide, je m'arrache les cheveux d'autant qu'en local tous marche et que les sites web huiles rares et s-n-l.fr sont hébergés sur le même serveur d'après mon hébergeur donc pas de différence de ce côté là et j'ai refait mes pages plusieurs fois sans succès.

    quelqu'un aurait il déjà rencontré ce problème ?

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Février 2004
    Messages
    57
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Février 2004
    Messages : 57
    Points : 71
    Points
    71
    Par défaut
    salut,

    je suppose que ta page d'erreur par défaut doit être default.aspx

    tu dois avoir une exception qui est levée mais non catchée

    pb d'accès à la base de donnée ?
    pb de redirection vers une page qui n'existe pas ?

    place un fichier Global.asax

    tu auras dedans une méthode (bon là c'est le code C# mais en VB.net ça doit être similaire)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    protected void Application_Error(object sender, EventArgs e)
            {
     
    Exception objErr = Server.GetLastError().GetBaseException();
    	string err =	"<b>Error Caught in Page_Error event</b><hr><br>" + 
    			"<br><b>Error in: </b>" + Request.Url.ToString() +
    			"<br><b>Error Message: </b>" + objErr.Message.ToString()+
    			"<br><b>Stack Trace:</b><br>" + 
    	                  objErr.StackTrace.ToString();
    	Response.Write(err.ToString());
    	Server.ClearError();
     
            }
    tu peux alors afficher l'erreur (je ne sais plus si le response.Write fonctionne à cet endroit )


    Attention à ce code qui capture toutes les erreurs même les erreurs HTTP, il ne faut pas le conserver ainsi en production

    pour plus d'info http://support.microsoft.com/kb/306355/fr

    enfin tout ça c'est une piste

    bon courage

  3. #3
    Futur Membre du Club
    Inscrit en
    Janvier 2006
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 11
    Points : 8
    Points
    8
    Par défaut j'ai bien une page d'erreur erreur.aspx
    En fait cela n'a rien à voir avec une erreur car j'ai bien une page d'erreur dans mon global asa qui renvoi vers erreur.aspx, cette page marche bien en cas d'erreur dans une page mais dans le cas présent, il ne considère pas qu'il y a une erreur dans l'exécution de la page, cela ressemble plutôt a un redirect automatique comme avec FormsAuthentication.RedirectFromLoginPage, sauf que l'authentification ne se fait pas et que je n'ai aucun ordre qui explique pourquoi il y a un retour vers la page d'accueil dès que j'utilise un bouton dans ces pages là.
    le problème ne se produisant en plus pas dans toute les pages du site, seulement les pages chap.aspx, page.aspx et prod.aspx pour les autres pages comme default.aspx, login.aspx, register.aspx, je n'ai aucun problème et je n'ai jamais de page d'erreur, seulement une redirection vers la page d'accueil sans exécution des événements liés aux boutons.

    Pour info mon global.asax

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
     
    Sub Application_Error(ByVal sender As Object, ByVal e As EventArgs)
            ' Se déclenche lorsqu'une erreur se produit
            Dim ex As System.Exception = Server.GetLastError().GetBaseException
            Dim message As New MailMessage
            Dim m As String
            message.From = "contact@site.com"
            message.To = "info@site.com"
            message.Subject = "::: Erreur S.N.L. :::"
     
     
            m = "<b>Erreur sur le site de la S.N.L.</b><br><br>" & _
                 "Message : " & ex.Message.ToString() & "<Br><Br>" & _
                 "Détails : <br><br>" & _
                 "Utilisateur : " & Session("Customer") & "<br><br>" & _
                 "Nom utilisateur : " & Session("FullName") & "<br><br>" & _
                 "Date : " + DateTime.Now.ToString() + "<br><br>" & _
                 "Pile : " + ex.StackTrace.ToString() + "<br><br>" & _
                "Source : " + ex.Source.ToString() + "<br><br>" & _
                "Url :" + Request.Url.ToString()
     
            message.BodyFormat = MailFormat.Html
            message.Priority = MailPriority.High
            message.Body = m
     
            SmtpMail.SmtpServer = "smtp.site.com"
            SmtpMail.Send(message)
     
        End Sub
    HELP !!!

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Février 2004
    Messages
    57
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Février 2004
    Messages : 57
    Points : 71
    Points
    71
    Par défaut
    ok pour la page d'erreur.


    bon reprenons :

    réponse simple :

    tu n'as pas de redirection JS ou autre vers ta page default.apsx ?


    réponse plus complexe :

    tu utilises des contrôles utilisateurs

    ton code behind et ton contrôles utilisateurs sont ils cohérents :

    dans ton ascx :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <%@ Control Language="C#" AutoEventWireup="true" CodeBehind="TONCONTROLE.ascx.cs" Inherits="TONNAMESPACE" %>
    avec ton code vb:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    namespace TONNAMESPACE
    {
        public partial class TONCONTROLE: System.Web.UI.UserControl
        {
    si tu as fait des copier coller avec des renommages tu peux avoir oublié une mauvaises déclaration ?!

    tu peux d'ailleurs faire ce controle sur toutes les pages

  5. #5
    Futur Membre du Club
    Inscrit en
    Janvier 2006
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 11
    Points : 8
    Points
    8
    Par défaut Merci mais c'est malheureusement pas encore ça.
    Merci, j'ai effectivement vérifié mon usercontrol :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <%@ Control Language="vb" AutoEventWireup="true" Codebehind="Boutique.ascx.vb" Inherits="sable_normalise.Boutique" TargetSchema="http://schemas.microsoft.com/intellisense/ie5" %>
    et dans la page Boutique.ascx.vb:
    cette partie correspondant à mon menu de droite au complet donc aussi avec les produits phares.

    Et comme le problème vient de certaines pages mais pas de toute les pages, j'ai aussi vérifié mes pages contenant ce usercontrol :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <%@ Register TagPrefix="Droit" TagName="Boutique" Src="Boutique.ascx" %>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <div id="Droit">
    <DROIT:BOUTIQUE id="Boutique" runat="server" SelectedIndex="0"></DROIT:BOUTIQUE>
    </div>
    et ton idée était bonne mais non, le problème ne vient pas de là.

    dans toute mes pages, j'utilise URLRewriter et je n'ai pas de problème avec celles qui ne font intervenir que la langue : default_fr.aspx, default_en.aspx,... ou catalogue_fr.aspx, catalogue_en.aspx par contre dès qu'il y a plus de paramètre cela provoque le bug, je n'arrive pas à savoir si ces deux évènements sont liés mais si qulqu'un avait déjà rencontré le problème, merci de votre aide,

    Pour info mes rewriter :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    		<RewriterRule>
    			<LookFor>~/Default_(.*).aspx</LookFor>
    			<SendTo>~/Default.aspx?lg=$1</SendTo>
    		</RewriterRule>
    		<RewriterRule>
    			<LookFor>~/Catalogue_(.*).aspx</LookFor>
    			<SendTo>~/Catalogue.aspx?lg=$1</SendTo>
    		</RewriterRule>
    		<RewriterRule>
    			<LookFor>~/Chap_(.*)_(.*)_(.*)_(.*).aspx</LookFor>
    			<SendTo>~/Chap.aspx?lg=$1&amp;code=$3&amp;selectmenu=$2</SendTo>
    		</RewriterRule>
    		<RewriterRule>
    			<LookFor>~/Page_(.*)_(.*)_(.*)_(.*).aspx</LookFor>
    			<SendTo>~/Page.aspx?lg=$1&amp;code=$3&amp;selectmenu=$2</SendTo>
    		</RewriterRule>
    Agnès H.

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Février 2004
    Messages
    57
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Février 2004
    Messages : 57
    Points : 71
    Points
    71
    Par défaut
    dès qu'il y a plus de paramètre cela provoque le bug, je n'arrive pas à savoir si ces deux évènements sont liés
    n'ayant pas de meilleure piste, ça me semble fort probable!

    à mon avis il faut chercher de ce coté là.

    mais là je n'en sais pas plus.

    as tu un système de log ? si oui tu peux ajouter des traces dans tes événements de ton user contrôle et sur ton gestionnaires d'url : ça devrait t'aider à y voir plus clair.

    bon courage

  7. #7
    Futur Membre du Club
    Inscrit en
    Janvier 2006
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 11
    Points : 8
    Points
    8
    Par défaut bug sur la réécriture de l'url
    Bon merci titom, tu m'as mise sur la piste et j'ai trouvé le bug qui vient effectivement de la réécriture de la page, en effet, si j'ai l'url :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    http://www.s-n-l.fr/Chap_fr_2_CERTIF_certifications.aspx
    pas de problème, ma page s'affiche correctement sauf que lorsque j'execute un évenemenyt bouton, il essaye de me renvoyer vers ma page
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    http://www.s-n-l.fr//Chap.aspx?lg=fr&code=CERTIF&selectmenu=2
    et là je ne sais pas pourquoi mais il me renvoie automatiquement sur la page d'accueil default.aspx
    est-ce que quelqu'un sait pourquoi il fait cela et comment je peux conserver la réécriture de mes pages tout en me permettant d'exécuter des actions bouton dans les pages.
    Merci de votre aide,
    PS et pourquoi cela marche quand il n'y a qu'un seul request params dans la page mais pas quand il y en a plusieurs ?????

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Février 2004
    Messages
    57
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Février 2004
    Messages : 57
    Points : 71
    Points
    71
    Par défaut
    probablement à cause des 2 /

    dans

    www.s-n-l.fr//Chap.aspx?

  9. #9
    Futur Membre du Club
    Inscrit en
    Janvier 2006
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 11
    Points : 8
    Points
    8
    Par défaut faute de frappe mais pas dans la page
    malheureusement le // était juste une faute de frappe dans mon texte, existe t'il quelques part une explication sur l'utilisation d'urlrewriter qui expliquerait mon bug ?
    Merci de ton aide.

  10. #10
    Futur Membre du Club
    Inscrit en
    Janvier 2006
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 11
    Points : 8
    Points
    8
    Par défaut Finalement bug sur URL rewriter
    Bonjour,

    Finalement, mon bug vient d'URL rewriter que j'ai récupéré il y a longtemps
    jusqu'ici je n'avais jamais eu de problème et là pour une raison que j'ignore je n'arrive plus à lire directement la page d'origine lorsque je suis en ligne. En local tous fonctionne sans problème.
    Je m'explique et d'abord voici mon code de redirection des pages pour renommer mes URL :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
     
    <configuration>
    	<configSections>
    		<section name="RewriterConfig" type="URLRewriter.Config.RewriterConfigSerializerSectionHandler, URLRewriter" />	
    	</configSections>
     <RewriterConfig>
    	<Rules>
    		<RewriterRule>
    			<LookFor>~/Catalogue_(.*)\.html</LookFor>
    			<SendTo>~/Catalogue.aspx?lg=$1</SendTo>
    		</RewriterRule>
    		<RewriterRule>
    			<LookFor>~/Catalogue_(.*)\.aspx</LookFor>
    			<SendTo>~/Catalogue.aspx?lg=$1</SendTo>
    		</RewriterRule>
    		<RewriterRule>
    			<LookFor>~/Default_(.*)\.aspx</LookFor>
    			<SendTo>~/Default.aspx?lg=$1</SendTo>
    		</RewriterRule>
    		<RewriterRule>
    			<LookFor>~/Default_(.*)\.html</LookFor>
    			<SendTo>~/Default.aspx?lg=$1</SendTo>
    		</RewriterRule>
    		<RewriterRule>
    			<LookFor>~/Chap_(.*)_(.*)_(.*)_(.*)\.html</LookFor>
    			<SendTo>~/Chap.aspx?lg=$1&amp;code=$3&amp;selectmenu=$2</SendTo>
    		</RewriterRule>
    		<RewriterRule>
    			<LookFor>~/Chap_(.*)_(.*)_(.*)_(.*)\.aspx</LookFor>
    			<SendTo>~/Chap.aspx?lg=$1&amp;code=$3&amp;selectmenu=$2</SendTo>
    		</RewriterRule>
    		<RewriterRule>
    			<LookFor>~/Page_(.*)_(.*)_(.*)_(.*)\.aspx</LookFor>
    			<SendTo>~/Page.aspx?lg=$1&amp;code=$3&amp;selectmenu=$2</SendTo>
    		</RewriterRule>
    		<RewriterRule>
    			<LookFor>~/Page_(.*)_(.*)_(.*)_(.*)\.html</LookFor>
    			<SendTo>~/Page.aspx?lg=$1&amp;code=$3&amp;selectProd=$2</SendTo>
    		</RewriterRule>
     
    	</Rules>
    </RewriterConfig>
      <system.web>
     
     
    	<httpModules>
    		<add type="URLRewriter.ModuleRewriter, URLRewriter" name="ModuleRewriter" />
    	</httpModules>
    	<httpHandlers>
     		<add verb="*" path="*.aspx" type="URLRewriter.RewriterFactoryHandler, URLRewriter" />
    	</httpHandlers>
    Voilà pour le code de réécriture des url, maintenant mon problème vient du faites que la page
    Chap_fr_6_CONTACT_contact.html ou .aspx marche très bien par contre la page Chap.aspx?lg=fr&code=CONTACT&selectemenu=6 me renvoie de manière très étrange et incompréhensible vers la page default.html alors que j'ai une page d'erreur défini dans mon global.asax qui est erreur.aspx
    cette page d'erreur fonctionne sur de vrais bug genre page 404 ou mauvaise définition de paramètres d'entrées mais dans le cas de la page chap.aspx, pas de bug juste retour vers la page d'accueil.
    J'ai ce problème avec les pages chap.aspx et page.aspx par contre la page catalogue marche très bien sous la forme : catalogue_fr.html comme sous la forme catalogue.aspx?lg=fr
    est-ce que quelqu'un a une idée d'où peut provenir ce problème ?
    Sachant que pour compliquer le problème en local tous fonctionne cortrectement et toute mes pages s'affichent :
    Chap.aspx?lg=fr&code=CONTACT&selectemenu=6 comme la page Chap_fr_6_CONTACT_contact.html

    Merci de votre aide et surtout merci à TITOM59 qui m'a permis de trouver le problème car en effet, lorsqu'un événement bouton est executé, l'URL de la page de postback redeviens Chap.aspx?lg=fr&code=CONTACT&selectemenu=6, comme cette page n'arrive pas à s'exécuter, j'ai un retour vers la page d'accueil sans que l'évènement lié au bouton s'exécute.

    HELP ????

Discussions similaires

  1. Réponses: 2
    Dernier message: 06/06/2012, 11h01
  2. Réponses: 5
    Dernier message: 29/03/2011, 15h05
  3. Bug Struts sur les listes dans un formulaire ?
    Par tite_mushu dans le forum Struts 1
    Réponses: 4
    Dernier message: 10/02/2011, 09h58
  4. Conférence vidéo sur les avancées dans le domaine du Web trois tiers
    Par Mickael Baron dans le forum Développement Web en Java
    Réponses: 0
    Dernier message: 27/04/2006, 12h00

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo