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 :

PlaceHolder et FindControl


Sujet :

ASP.NET

  1. #1
    Membre averti
    Inscrit en
    Novembre 2006
    Messages
    16
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Novembre 2006
    Messages : 16
    Par défaut PlaceHolder et FindControl
    J'ai un probleme "NullPointerException" quand j'essay de trouver un control dans mon placeHolder. Le PlaceHolder est dans une page aspx, contenu dans un Master, mais les controles ne sont pas dans le Master

    Voila le code:

    default.aspx
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <tr>
    <td><asp:PlaceHolder ID="PlaceHolder1" runat="server"></asp:PlaceHolder></td>
    </tr>
    CodeBehind
    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
     
        Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
            If Not Page.IsPostBack Then
     
                ' Load Team Categories in DropDownList
                equipecat.Controls.Add(EquipeHelpers.getCategories(ViewData("Category")))
     
                ' Load Team Trainers (many-to-many)
                For Each entraineur As DAL.Horaire_dev.EntraineursEquipe In ViewData("Entraineurs")
     
                    ' Name TextBox
                    Dim name As New TextBox
                    name.ID = "EntName" & entraineur.Id
                    name.Text = entraineur.HoEntraineur.Nom
     
                    ' Delete Label
                    Dim del As New Label
                    del.ID = "EntDel" & entraineur.Id
                    del.Text = "Supprimer"
     
                    ' Add Controls
                    PlaceHolder1.Controls.Add(name)
                    PlaceHolder1.Controls.Add(EquipeHelpers.getEntTypes(entraineur.Entraineur)) ' Type DropDownList
     
                    PlaceHolder1.Controls.Add(New LiteralControl("<small><a href=/Equipes/EntDelete/" & entraineur.Id & ">"))
                    PlaceHolder1.Controls.Add(del)
                    PlaceHolder1.Controls.Add(New LiteralControl(" </a></small><br />"))
                Next
            End If
        End Sub
     
     
        Protected Sub btnsavee_Click(ByVal sender As Object, ByVal e As EventArgs) Handles btnsavee.Click
            For Each entraineur As DAL.Horaire_dev.EntraineursEquipe In ViewData("Entraineurs")
                Try
                    Dim textBox As New TextBox
                    textBox = PlaceHolder1.FindControl("EntDel" & entraineur.Id)
     
                    MsgBox(textBox.Text)
                Catch ex As Exception
                    MsgBox(ex.ToString)
                End Try
            Next
            Response.Redirect("/Equipes/Save/" & ViewData("id"))
        End Sub
    Merci de votre aide!

  2. #2
    Membre Expert
    Avatar de ThomasR
    Homme Profil pro
    Directeur technique
    Inscrit en
    Décembre 2007
    Messages
    2 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2 230
    Par défaut
    Bonsoir,

    Et si tu construis tes éléments dans le Pre_Render ?

  3. #3
    Membre chevronné Avatar de predalpha
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    392
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 392
    Par défaut
    arf, en fait tu ne peux pas faire comme cela. Car au moment où tu pratiques un postback, tes contrôles dynamiquement crées n'existent plus.
    Ceux là, il faut les reconstruire tout le temps ! (là ta vérification dans ton postback ne les récrée plus)

    Je te propose un excellent tuto de Nico-Pyright
    http://nico-pyright.developpez.com/t...prendreaspnet/


    Perso je crée les contrôles dynamiques lors de l'initialisation de ma page.

    ++

Discussions similaires

  1. [Oracle reports] Placeholder
    Par memed dans le forum Oracle
    Réponses: 6
    Dernier message: 09/02/2006, 11h22
  2. [WebForms]placeholder
    Par dude666 dans le forum Général Dotnet
    Réponses: 2
    Dernier message: 19/08/2005, 16h42
  3. [DLL] FindControl
    Par Pedro dans le forum Langage
    Réponses: 6
    Dernier message: 22/11/2004, 13h31
  4. [VB.NET] Transmettre un flux par un placeholder
    Par zaky dans le forum ASP.NET
    Réponses: 2
    Dernier message: 29/04/2004, 10h35
  5. [C#] Organisation PlaceHolder
    Par Johan31 dans le forum ASP.NET
    Réponses: 6
    Dernier message: 26/01/2004, 14h20

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