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 :

Pas de postback sous IE ?


Sujet :

ASP.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    118
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 118
    Par défaut Pas de postback sous IE ?
    Bonjour,

    J'ai un formulaire de recherche en ASP.Net. Classique, on rempli des champs, on valide, ca lance une requete et on affiche le resultat.
    Tout se passe bien avec FF et Chrome mais sur IE, valider en cliquant "recharge" la page (je vois bien le scintillement du postback) mais les champ sont réinitialisés et la recherche n'est pas lancée. On se retrouve avec la page à vide, comme si elle se chargeait pour la première fois.

    Si je lance Fiddler pour voir ce qui se passe, le formulaire fonctionne. Je suppose que Fiddler réécrit la requête HTTP envoyée au serveur et la corrige au passage.
    Si je lance mon appli en pas à pas, ça marche. Si bien que je ne trouve pas de moyen de constater l'origine du bug.

    fishier aspx :
    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
    <%@ Page Language="C#" AutoEventWireup="true" CodeFile="~/xml/Dialog/rechercher.aspx.cs" Inherits="xml_Dialog_rechercher" %>
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <title>Recherche</title>
        <link rel="stylesheet" href="css/screen.css" />
        <script type="text/javascript" src="js/dialog.js"></script>
        <!-- other js calls -->
    </head>
    <body style="background-image:url('/lib_central/images/ACTIV/common/bgd_main.gif');background-repeat:repeat-y;">
     
        <form runat="server">
     
            <!--
                ...
            -->
     
            <!-- Exemple de champ de recherche : le champ Texte -->
            <label for="motsClefs" class="bold"><% Response.Write(get_label("motcle")); %></label><br />
            <asp:TextBox ID="rech_kw" runat="server" value="" ForeColor="#999999" Width="250"></asp:TextBox>
     
            <!-- Le bouton de validation -->
            <asp:LinkButton ID="rech_valide" OnClick="lancer_recherche" runat="server" CssClass="boutons rechercher inlineBlk" >
            <span class="rechercher"><span class="alt_text">rechercher</span></span></asp:LinkButton>
            <br class="clear" />
     
            <%-- Affichage des resultats --%>
            <div ID="resultats" class="contentDia alignementBlk" runat="server"></div>
     
     
            <!--
                ...
            -->
     
            <!-- Dire à la fenetre parent de changer de taille en fonction des resultats -->
            <script type="text/javascript">
                $('#iframe_666', window.parent.document).height(100+$(".contentDialogue").height());
            </script>
        </form>
    </body>
    </html>


    Code behind :
    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
    52
    53
    54
    55
    56
    57
    58
    59
    60
    public partial class xml_Dialog_rechercher : System.Web.UI.Page
    {
        string keyword = ""; // Champ de saisie texte
        List<DLG_Questions> list_q;
        public string lang;
     
     
        // Au chargement de la page
        protected void Page_Load(object sender, EventArgs e)
        {
     
        }
     
     
        // A la validation du formulaire
        protected void lancer_recherche(object sender, EventArgs e)
        {
            // Si un champ de recherche contient quelque chose
            if (get_filters())
            {
                // Requeter la couche données pour extraire l'info
                this.list_q = DialogManager.recherche(this.keyword);
     
                // Afficher les resultats
                if (this.list_q.Count == 0)
                {
                    resultats.InnerHtml = "no results";
                }
                else
                {
                    resultats.InnerHtml = display_question_list();
                }
            }
        }
     
     
     
        // "Lit" les champs du formulaire
        // si tous sont vides => return FALSE
        // si au moins un contient une info => enregistrer l'info et return TRUE
        protected bool get_filters()
        {
            // ...
     
            return ret;
        }
     
     
        // Retourne un HTML de la liste des resultats de recherche
        public string display_question_list(){
            // ...
        }
     
     
        // Internationnalisation
        protected string get_label(String cle)
        {
            // ...
        }
    }
    Je sens vaguement que ca cloche dans la discussion entre client et serveur autour du mécanisme de postback ou de viewstate mais je ne tiens rien de précis.
    D'ailleurs autre symptôme : Sur FF le viewState au chargement fait environ 8 lignes dans firebug, après une recherche il passe à 12 lignes. Dans IE, le viewstate ne fait qu'une ligne au chargement et reste identique après avoir cliqué pour lancer une recherche.
    J'ai essayé d'ajouter des "enableViewState=true" sur mes contrôles (en plus de l'avoir directement sur la page), j'ai essayé d'ajouter un "causesValidation" sur mon bouton, mais en vain.

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    118
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 118
    Par défaut
    Petite précision : la page .Net est appelée dans la page web via une iframe (contrainte d'utilisation d'un CMS m'obligeant à faire ainsi)

    Donc, l'appel est fait ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <iframe id="iframe_" src="http://[NomDuServeur]/xml/dialog/rechercher.aspx?L=FR" scrolling='AUTO' frameborder='NO' width="605" height="6000" marginheight='0' marginwidth='0'></iframe>
    Quand j'appelle ma page "brut" dans le navigateur (http://[NomDuServeur]/xml/dialog/rechercher.aspx?L=FR), ca se comporte normalement.
    C'est sur la page contenant l'iframe que le bug se produit, uniquement pour IE, rappelons-le.

Discussions similaires

  1. Pas de JOIN sous Oracle (vraiment dommage...)
    Par Isildur dans le forum Langage SQL
    Réponses: 7
    Dernier message: 15/03/2007, 11h28
  2. [Mac] Lien ne fonctionnant pas mais ok sous Windows
    Par bractar dans le forum Balisage (X)HTML et validation W3C
    Réponses: 11
    Dernier message: 26/01/2006, 18h38
  3. y'a pas mon poste sous réseau, pourquoi ?
    Par StyleXP dans le forum Administration
    Réponses: 2
    Dernier message: 22/01/2006, 14h48
  4. [regExp] passe en php mais pas javascript seulement sous ie
    Par zax-tfh dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 28/09/2005, 14h34
  5. Pas de fork sous Windows?
    Par chezjm dans le forum POSIX
    Réponses: 8
    Dernier message: 11/06/2002, 12h15

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