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 :

[AJAX] ajouter un updatePanel par codebehind


Sujet :

ASP.NET

  1. #1
    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 [AJAX] ajouter un updatePanel par codebehind
    Salut

    J'essai un truc qui est peut être un "p'tit fort pour moi, p'tit gars ! "

    Je voudrais ajouter un UpdatePanel par CodeBehind, dans lequel je mets un Label et une Button. Puis, lsorsque je clique sur ce Button je rajoute un autre Label.
    Au démarage je place un Label et un Button qui déclenche l'ajoute de l'updatePanel.

    Selon le code que je vais placé plus loin j'ai :
    - un bouton et un label.
    - je clqiue sur le bouton
    - un autre label et un autre bouton apparraissent
    - je clique sur le nouveau bouton
    - tout disparait et il ne passe pas dans la Sub du bouton en question.

    Voici mon code? Pouvez vous m'aider à comprendre pourquoi ça ne fais pas ce que je voudrais ?

    Merci d'avance.

    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
     
    Protected Sub Page_Init(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Init
    		Dim lTitre As New Label
    		lTitre.Text = "Bienvenue dans la Concession"
    		Me.Controls.Add(lTitre)
     
    		Dim btnVoiture As New Button
    		With btnVoiture
    			AddHandler btnVoiture.Click, AddressOf AfficheConcession
    			.Text = "Choisir une voiture"
    			.ID = "btnVoiture"
    		End With
    		Me.Controls.Add(btnVoiture)
    		Dim upConcession As New UpdatePanel
    		With upConcession
    			.UpdateMode = UpdatePanelUpdateMode.Conditional
    			.ID = "upConcession"
    		End With
    		Dim trigbtnVoiture As New AsyncPostBackTrigger
    		With trigbtnVoiture
    			.ControlID = btnVoiture.ID
    			.EventName = "Click"
    		End With
    		upConcession.Triggers.Add(trigbtnVoiture)
    		Me.Controls.Add(upConcession)
     
    	End Sub
     
    	Sub AfficheConcession(ByVal sender As Object, ByVal e As System.EventArgs)
    		Dim upc As UpdatePanel = Me.FindControl("upConcession")
    		Dim lTest As New Label
    		lTest.Text = "test d'affichage du panel de Consession"
    		upc.ContentTemplateContainer.Controls.Add(lTest)
    		Dim btnTest As New Button
    		With btnTest
    			AddHandler btnTest.Click, AddressOf AfficheDetailVoiture
    			.Text = "Détail de voiture"
    			.ID = "btnDetail"
    		End With
    		upc.ContentTemplateContainer.Controls.Add(btnTest)
    		Dim trigDetailVoiture As New AsyncPostBackTrigger
    		With trigDetailVoiture
    			.ControlID = btnTest.ID
    			.EventName = "Click"
    		End With
    		upc.Triggers.Add(trigDetailVoiture)
    	End Sub
     
    	Sub AfficheDetailVoiture(ByVal sender As Object, ByVal e As System.EventArgs)
    		Logage("je passe")
    		Dim upc As UpdatePanel = Me.FindControl("upConcession")
    		Dim lDetailVoiture As New Label
    		lDetailVoiture.Text = "Detail de la voiture"
    		upc.ContentTemplateContainer.Controls.Add(lDetailVoiture)
     
    	End Sub
    Si vous voulez recréer le contexte total : faire ça dans un ASCX vide et collez simplement ce code dans le page de CodeBehind, tout y est.

  2. #2
    Modérateur

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2007
    Messages
    1 996
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 996
    Par défaut
    Je n'ai pas franchement eu le temps de me pencher sur ton code.
    Juste une remarque, faire ça sur le Page_Init me paraît étrange, j'aurais tendance à faire ça au load.
    En effet, au clic sur le bouton crée dynamiquement, toutes les données de ta page sont renvoyées.

    Qui plus est, tu n'ajoutes pas de contentTemplate.

  3. #3
    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
    Merci Calagan99

    Je vais déplacer ça dans le Load, histoire de voir.

    PAr contre, le coup du ContentTemplate, j'arrive pas à suivre. J'ajoute les controle dans le Container de l'UpdatePanel, donc normalement y a pas besoins de rajouter de ContentTemplate, ou je me trompe ?

  4. #4
    Modérateur

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2007
    Messages
    1 996
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 996
    Par défaut
    Tu as raison, je me suis trompé concernant le contentTemplate.

    Sinon, je pense définitivement que le Load devrait résoudre ton soucis.

  5. #5
    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
    Je viens de faire la manip et le test n'est pas concluant du tout.

    ça me donne toujours la même chose : je clique sur un des LinkButon et tout disparait et il ne passe toujours pas dans la Sub du LinkButton. C'est surtout ça que je n'arrive pas à comprendre. Il ne passe pas dans la Sub, il ne renvoi pas de message d'erreur, rien, nada.

    Si tu as une autre idée, je suis preneur. J'ai trouvé un forum qui décrit le même genre de problème que moi et visiblement le gars à trouvé une solution. Mais pour l'instant il me répond pas.

  6. #6
    Modérateur

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2007
    Messages
    1 996
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 996
    Par défaut
    Essaye d'ajouter un panel ou un placeholder a ta page et d'ajouter l'updatepanel à ce contrôle plutot qu'a la page directement.

  7. #7
    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
    Bon, je crois que j'ai réussi. Mais je préfère être prudent avant de chanter le chant de la victoire (à ce propos, je conseille à tout le monde Victorious March de AMON AMARTH).

    Donc, j'ai repris le code de l'autre forum et j'y ai placé tes conseils.

    Bilan de l'opération, il faut visiblement déclarer l'UpdatePanel en haut de la Class, en Private.
    Ensuite, j'ai ajouter une table non visible avec ma liste d'élément dont je veux le détail. Sur un LinkButton je la rend visible et sur le LinkButton de chaque ligne je rajoute des contrôles dans l'UpdatePanel.

    J'en déduis que l'on ne peut pas ajouter dynamiquement de controle de type Button avec un Addhandler lors d'un passage sur un UpdatePanel.

    Ou alors, j'ai rien compris à ce que je fais, mais pour l'instant, ça donne le résultat que j'espérais, donc je vais continuer dans ce sens.

    Merci pour ton aide.

    PS : je boucle pas de suite, des fois que ça replante.

  8. #8
    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
    Bon, ben ce que je craignais arriva.....

    Ce que j'ai pas capté de suiste dans mon avancée, c'est que j'avasi jsute remonté le problème d'un cran.
    Maintenant, j'affiche ma liste de voiture direct, avec un joli LinkButton pour avoir le détail.

    Mais lorsque je clique sur le détail, j'affiche des éléments et un bouton pour acheter la voiture. Mais ce bouton est fabriqué avec son AddHandler et visiblement, l'UpdatePanel n'a pas l'air d'accepter ce genre de pratique.

    Alors, là je sèche.

Discussions similaires

  1. Ajouter un UpdatePanel par CodeBehind
    Par zooffy dans le forum ASP.NET
    Réponses: 5
    Dernier message: 26/10/2010, 11h40
  2. [AJAX] SlideShow par CodeBehind
    Par zooffy dans le forum ASP.NET
    Réponses: 2
    Dernier message: 15/01/2009, 10h47
  3. [AJAX] UpdateProgress par CodeBehind
    Par zooffy dans le forum ASP.NET
    Réponses: 7
    Dernier message: 20/05/2008, 14h16
  4. [AJAX] Monter un UpdatePanel dans le CodeBehind
    Par zooffy dans le forum ASP.NET
    Réponses: 4
    Dernier message: 21/04/2008, 15h49
  5. [AJAX] ie et l'ajout de code par ajax
    Par cybersplash dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 25/04/2007, 11h26

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