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 :

Gridview, UpdatePanel, PopupExtender


Sujet :

ASP.NET

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    138
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 138
    Points : 68
    Points
    68
    Par défaut Gridview, UpdatePanel, PopupExtender
    Bonjour,

    Je vais tenter de bien expliquer mon problème.

    J'ai un gridview.
    Dans une des colonnes de mon gridview, j'ai un updatepanel englobant un popupextender et une case à cocher qui me provoque un évènement. Ce popupextender fait apparaître une liste, et contient un bouton de validation.

    Le problème :
    Lorsque mon gridview s'affiche pour la première fois (premier chargement de ma page), je peux ouvrir le popup et appeler l'évènement du bouton associé.
    Cependant, lorsque je coche ma case (qui me provoque un rafraichissement en interne de mon updatepanel), je peux ouvrir ma popup mais l'évènement de click sur le bouton associé ne se fait pas.

    J'ai enlevé le popupextender pour voir si le problème pouvait venir de là, et en effet... l'évènement de click sur le bouton se passe bien dans tous les cas...

    J'espère avoir été clair.

    Voici le bout de code d'affichage :
    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
     
    ...
    <asp:TemplateField HeaderText="Traitement" ItemStyle-Width="120px" ItemStyle-HorizontalAlign="left">
                        <ItemTemplate>
                            <asp:UpdatePanel ID="UpdatePanelDateTraitement" runat="server" UpdateMode="Conditional">
                            <ContentTemplate>
                                <asp:CheckBox ID="ckCourrier" runat="server" AutoPostBack="true" OnCheckedChanged="ModifierCourrier" />
                                <asp:Image ID="ibPI" runat="server" ImageUrl="~/GUI/images/Icones/courrier.gif" ImageAlign="absMiddle" CssClass="select" Visible="false" />
     
                                <cc1:PopupControlExtender ID="pcePI" runat="server" 
                                    PopupControlID="panPI" TargetControlID="ibPI"
                                    Position="Left"
                                    OffsetX="-200"
                                    OffsetY="0">
                                </cc1:PopupControlExtender>
     
                                <asp:Panel ID="panPI" runat="server" style="display:none;">
                                    <div class="popup padding5 taille200">
                                        <div class="alignLeft">
                                            <asp:RadioButtonList ID="rblPI" runat="server" />
                                        </div>
                                        <div class="alignRight">
                                            <asp:ImageButton ID="ibValider" runat="server" ToolTip="Afficher le courrier" ImageUrl="~/GUI/images/Icones/imprimer.gif" OnClick="ImprimerCourrier" />
                                        </div>
                                    </div>
                                </asp:Panel>
     
                                <asp:Label ID="lblDateCourrier" runat="server" />
     
                            </ContentTemplate>
                            </asp:UpdatePanel>
     
                        </ItemTemplate>
                    </asp:TemplateField>
    ...

  2. #2
    Membre expérimenté

    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    1 377
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 377
    Points : 1 628
    Points
    1 628
    Par défaut
    Cependant, lorsque je coche ma case (qui me provoque un rafraichissement en interne de mon updatepanel), je peux ouvrir ma popup mais l'évènement de click sur le bouton associé ne se fait pas.
    Je comprends pas un truc, est ce que l'évenement associer à ton bouton ne s'execute pas ? (l'as tu vérifié ?) Ou est ce que ton popup reste active ce qui te fais pense qu'il ne s'est pas exécuté ?

    En trotre qu'est ce que fait l'evenement associé au bouton ?
    Et as tu mis un point d'arrêt pour savoir ce qu'il fait ? (L'event il s'execute bien en code-behind ?)
    Échouer, c'est avoir la possibilité de recommencer de manière plus intelligente.

    Twitter Blog Mon site

    Mon article sur l'agilité

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    138
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 138
    Points : 68
    Points
    68
    Par défaut
    La popup s'ouvre et se referme bien, pas de soucis là dessus.

    J'ai mis un point d'arrêt sur l'évènement associé à mon bouton de ma popup :
    Au moment du chargement de la page, sans autre évènement fait avant, la méthode associée à l'évènement du bouton de la popup s'exécute bien.
    En revanche, lorsque je coche ma case (associé à un autopostback donc), la méthode associée au bouton de la popup ne s'exécute pas.

    Quand j'enlève mon popup extender, tout se passe sans problème. Donc j'imagine que le problème vient du popup extender, mais je ne vois pas où.

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    138
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 138
    Points : 68
    Points
    68
    Par défaut
    J'ai essayé de mettre un "AutoPostBack=true" avec une méthode sur l'évènement "OnSelectedChange" de la radiolist, et ça marche à tous les coups.

    On dirait que le problème se pose sur des composants qui font un postback automatiquement (Button, ImageButton, linkbutton)...

    Je suis en train de voir pour une autre conception de mon ergonomie, mais franchement, je cromprends pas...

  5. #5
    Membre à l'essai
    Inscrit en
    Décembre 2005
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 7
    Points : 10
    Points
    10
    Par défaut
    Problème similaire :

    J'ai une gridview avec un bouton dans un item Template. J'associe une fonction à l'évènement onclick.
    Lorsque je suis dans un updatePanel, ca ne marche plus, la fonction n'est pas appelée.
    Dès que je sors du updatePanel, le onclick appelle la bonne fonction.

Discussions similaires

  1. PostBack UpdatePanel GridView
    Par Erakis dans le forum ASP.NET
    Réponses: 0
    Dernier message: 28/01/2010, 17h13
  2. updatepanel et allowpaging sur gridview
    Par tortuegenie dans le forum ASP.NET
    Réponses: 2
    Dernier message: 22/12/2009, 15h14
  3. GridView, UpdatePanel, Templatefield et RowCommand
    Par osyks dans le forum ASP.NET
    Réponses: 0
    Dernier message: 20/07/2009, 11h45
  4. gridview sqldatasource updatepanel
    Par tortuegenie dans le forum ASP.NET
    Réponses: 2
    Dernier message: 07/07/2009, 08h33
  5. UpdatePanel, GridView et export vers Excel
    Par Devilbilly dans le forum ASP.NET
    Réponses: 6
    Dernier message: 07/02/2008, 12h12

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