none
controls.add c'est rigolo que quand ca marche ! RRS feed

  • Question

  • j'ai une page web avec un simple bouton "bouton1"

    lorsque je clique dessus, je veux qu'il ajoute dynamiquement un bouton dans un controle de type panel (s'il y a mieux je suis preneur hein ?)

    donc voici mon code

    Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
     'ctr = ctr + 1
     'Session("compteur") = ctr
     Label.Text = Label.Text & " | " & Session("compteur") & " | " & ctr.ToString
     Dim newBtn As New Button()
     'on definie les proprietés du nouveaux bouton :
     '----------------------------------------------------
     newBtn.ID = "NewButton" + (ctr).ToString() 'defini le nom du bouton
     newBtn.Text = "NewButton_" + (ctr).ToString() 'defini le text du bouton
     newBtn.Width = 100 'on definit la taille horizontale du bouton
     newBtn.Height = 20 'on definit la taille verticale du bouton
     Panel3.Controls.Add(newBtn)

     'esperons qu'avec un index au prochain chargement
     'il garde le bouton precedent !
     ' naaann ! ca marche pas !
     'Panel3.Controls.AddAt(ctr, newBtn)

     AddHandler newBtn.Click, AddressOf newBtn_Click  ' ajoute l'evenement myButtonHandler_Click au controle

     ctr = ctr + 1
     Session("compteur") = ctr

    End Sub

    le probleme ?
    a chaque clic sur bouton1 il cree un nouveau bouton alors que moi je veux qu'il en rajoute un au precedent déja créé dynamiquement !

    je presume un truc genre page_init ou Panel3.Controls.Count

    qui a une idée ?

    mardi 16 janvier 2007 15:42

Toutes les réponses

  • Bonjour,

    quand ta page se crée sur le serveur, elle crée tous les controles définis dans le code html.

    Puis le clic est intercepté et le bouton est crée et affiché, et c'est comme ça à chaque fois ! Il est donc normal que tu n'ai toujours qu'un seul bouton.

    Si tu veux en afficher n, il suffit d'en ajouter n dans le code du clic.

    samedi 27 janvier 2007 15:57