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 :

DropDownList dynamiques et AJAX UpdatePanel


Sujet :

ASP.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Courgette17
    Invité(e)
    Par défaut DropDownList dynamiques et AJAX UpdatePanel
    J'ai créé des dropdownlist dynamiquement dans un tableau. Elles s'affichent normalement à chaque enregistrement dans la table de ma bdd. Et quand je change leur numéro (de 1 à 100) ça me change les sous totaux et prix total de mon panier. J'utilise donc un AddHandler et ensuite une fonction drop1_SelectedIndexChanged et toutes les dropdownlist créées automatiquement sont en autopostback = true.

    Jusque la pas de problème. Sauf que j'aimerais me débarrasser du rafraichissement de toute la page à chaque fois que je change de valeur. J'aimerais que l'on voit juste les valeurs à coté se mettre à jour en fonction du nouveau numéro choisi dans la dropdownlist.

    J'ai donc essayé de mettre un updatepanel (en plus du scriptmanager) et de mettre mon tableau avec tous les prix, dropdown... tout ça à l'intérieur de l'updatepanel mais cela ne change rien. Cela rafraichit toujours toute la page dès que je change une valeur.
    J'ai essayé de changer les conditions de démarrage de l'update panel comme par exemple faire en sorte qu'il update pour les dropdownlist mais comme elles sont créées dynamiquement, il ne les reconnait pas.

    Que puis je faire pour faire fonctionner cette partie de mon application?

    Merci d'avance

  2. #2
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Par défaut
    Es-tu sûr que les ddl que tu crées dynamiquement se trouvent bien à l'intérieur de ton updatePanel?

  3. #3
    Courgette17
    Invité(e)
    Par défaut
    >_> <_< /me vérifie


    Oui en effet, c'est bien dans le updatepanel

    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
     
        <asp:UpdatePanel ID="UpdatePanel1" runat="server">
            <ContentTemplate>
     <asp:Table ID="Table1" runat="server" GridLines="Both">
            <asp:TableRow runat="server">
                <asp:TableCell runat="server" Font-Bold="True" Font-Underline="True">Marque</asp:TableCell>
                <asp:TableCell runat="server" Font-Bold="True" Font-Underline="True">Description du produit</asp:TableCell>
                <asp:TableCell runat="server" Font-Bold="True" Font-Underline="True">Prix unitaire en euros</asp:TableCell>
                <asp:TableCell runat="server" Font-Bold="True" Font-Underline="True">Quantité</asp:TableCell>
                <asp:TableCell runat="server" Font-Bold="True" Font-Underline="True">Prix total en euros</asp:TableCell>
                <asp:TableCell runat="server" Font-Bold="True" Font-Underline="True">Supprimer</asp:TableCell>
            </asp:TableRow>
        </asp:Table>
     
            </ContentTemplate>
        </asp:UpdatePanel>
    (J'ai bien sur coupé volontairement du code dans ce que je montre)

    Et c'est dans ce tableau que j'ajoute mes drop down list dans la colonne quantité en codebehind

    J'ai même vérifié dans le code source dans le navigateur et la div updatepanel s'arrête bien après le tableau.


    Et puis dans le codebehind j'ajoute à ce tableau strictement ce qu'il me faut. Donc je vois pas.

    Est-ce que cela peut poser probleme?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    quantite2 = New DropDownList
    quantite2.AutoPostBack = True
    AddHandler quantite2.SelectedIndexChanged, AddressOf quantite2_SelectedIndexChanged

  4. #4
    Membre expérimenté
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Par défaut
    heu, juste comme ça, il manquerait pas un triggers dans ton updatepanel ?

    Tel que tu présente le code, tu vas rafraichir jsute ton tableau, si j'ai bien compris ton exposé, c'est ce que tu veux. Mais il faut que tu mette un trigger pour dire que cela se déclenche sur la selection d'une nouvelle Value dans la DDL.

  5. #5
    Courgette17
    Invité(e)
    Par défaut
    Et comment tu l'indiques en codebehind?

    UpdatePanel.Trigger? Puis quoi ensuite?

  6. #6
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Par défaut
    Citation Envoyé par zooffy Voir le message
    heu, juste comme ça, il manquerait pas un triggers dans ton updatepanel ?

    Tel que tu présente le code, tu vas rafraichir jsute ton tableau, si j'ai bien compris ton exposé, c'est ce que tu veux. Mais il faut que tu mette un trigger pour dire que cela se déclenche sur la selection d'une nouvelle Value dans la DDL.
    Si les dropdownlist sont à l'intérieur de l'updatepanel, faut juste un autopostback = true, pas besoin de trigger il me semble

  7. #7
    Courgette17
    Invité(e)
    Par défaut
    J'ai essayé dans une autre page en mettant le updatepanel de façon à ce qu'il englobe un autre tableau ou le contenu est généré dynamiquement mais les boutons de ce tableau font eux aussi le refresh de toute la page.

    C'est normal que IE me dise qu'il y a des erreurs javascript dans les pages ou je mets l'updatepanel et le scriptmanager? Il me dit que sys est pas défini à cette ligne:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
        <script type="text/javascript">
    //<![CDATA[
    Sys.WebForms.PageRequestManager._initialize('ctl00$contenu$ScriptManager1', document.getElementById('aspnetForm'));
    Sys.WebForms.PageRequestManager.getInstance()._updateControls(['tctl00$contenu$UpdatePanel1'], [], [], 90);
    //]]>
    </script>
    et ici:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sys.Application.initialize();
    L'erreur est dans le code interprété, pas dans le code que j'ai mis moi meme, donc c'est ce que le serveur envoie.

Discussions similaires

  1. Ajax Popup avec Dropdownlist dynamique
    Par Nonos421 dans le forum ASP.NET Ajax
    Réponses: 2
    Dernier message: 12/05/2011, 08h15
  2. [AJAX] Affichage dynamique en AJAX
    Par damdam94 dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 28/12/2006, 19h24
  3. Charger une liste dynamiquement avec AJAX
    Par macra dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 20/10/2006, 21h39
  4. Réponses: 3
    Dernier message: 20/06/2006, 09h07
  5. Régénérer des dropdownlist dynamiques
    Par torper dans le forum ASP
    Réponses: 2
    Dernier message: 25/04/2006, 15h49

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