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 :

y a un truc spécial avec le SeparatorTemplate d'un Repeater ?


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 y a un truc spécial avec le SeparatorTemplate d'un Repeater ?
    Bonjour à tous.

    J'ai séché comme un couillon pendant deux heures sur un bug et j'ai pas compris pourquoi. Alors je vous soumet le cas.

    Je place un Repeater comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <asp:Repeater ID="rpComment" runat="server">
        <ItemTemplate>
            <asp:Image ID="imgComment" runat="server" />
            <asp:HyperLink ID="hlUser" runat="server"></asp:HyperLink>
            <asp:Label ID="lblComment" runat="server"></asp:Label>
        </ItemTemplate>
        <SeparatorTemplate><hr /></SeparatorTemplate>
    </asp:Repeater>
    Pour le remplir je mets ça dans le code Behind, dans le Init de la page :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
        Protected Sub Page_Init(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Init
            Dim dt As DataTable = New DManager("DataDev").RetournerTable("EXEC dbo.ListeCommentDealz " & Request.QueryString("id"))
            With rpComment
                .DataSource = dt
                .DataBind()
            End With
        End Sub
    Et ça pour faire les éléments :
    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
     
    Protected Sub rpComment_ItemDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.RepeaterItemEventArgs) Handles rpComment.ItemDataBound
            Dim img As Image = CType(e.Item.FindControl("imgComment"), Image)
            Dim hl As HyperLink = CType(e.Item.FindControl("hlUser"), HyperLink)
            Dim lbl As Label = CType(e.Item.FindControl("lblComment"), Label)
            With lbl
                .Text = DataBinder.Eval(e.Item.DataItem, "Commentaire")
                .CssClass = ""
            End With
            With img
     
            End With
            With hl
                .NavigateUrl = '"/Navigation/UserFile.aspx?mode=vendeur&id=" & DataBinder.Eval(e.Item.DataItem, "UserClient").ToString
                .Text = DataBinder.Eval(e.Item.DataItem, "UserName")
            End With
     
        End Sub
    Comme vous le constatez, rien d'ésotérique. Et bien j'ai ça qui apparait :
    La référence d'objet n'est pas définie à une instance d'un objet.
    en indiquant la ligne qui charge le Text du Label.
    Et si j'enlève le ItemSeparator, tout va bien !

    J'ai relu la MSDN et j'ai pas trouver d'où vient le souci.

    Une idée ?

  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
    Est-ce que lbl est non null?

  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
    Oui pourquoi ?

  4. #4
    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
    Ca expliquerait le:
    La référence d'objet n'est pas définie à une instance d'un objet.

  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
    Ben justement, c'est là que je capte pas : c'est la présence (ou l'absence) du SeparatorTemplate qui fait que ça marche ou pas !!!

    Mais surtout, la MSDN ne dit rien sur ce truc ou j'ai zappé le paragraphe.

  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
    Passe en debug pour savoir quel objet lève cet exception
    Sinon, essaye avec --- dans le separator à la place de <hr/> (c'est peut être les caractères spéciaux le problème, normalement non mais on sait jamais)

  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
    Alors j'ai essayé avec rien dans le SeparatorTemplate, avec des caractères simple (genre "azer") et c'est toujours la même chose.

    J'ai tenté un truc pour voir d'où ça vient plus préciément :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    With lbl
                Dim test As String = DataBinder.Eval(e.Item.DataItem, "Commentaire")
                .Text = test
                .CssClass = ""
            End With
    Le plantage se fait sur la propriétéText. Donc c'est le label qu'il ne trouve pas.

    C'est complétement dingue comme truc. Tu mets un SeparatorTemplate et il trouve plus le reste du contôle !

  8. #8
    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
    Dans ton OnItemDataBound, tu dois d'abord vérifier que t'es dans un Item ou un AlternatingItem

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    if e.Item.ItemType == ListItemType.Item OrElse e.Item.ItemType == ListItemType.AlternatingItem
    end if
    Si tu te trouves dans le Separator, tes appels à la fonction FindControl te renvoient l'erreur que tu as (normal, ils sont pas là tes controls)

  9. #9
    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 LuteceFalco

    J'avais pas capté ça pour les FindControl.

    Je peux boucler le sujet maintenant.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. un truc bizarre avec l'évaluateur delphi
    Par isachat666 dans le forum EDI
    Réponses: 1
    Dernier message: 07/04/2006, 14h22
  2. Truc mystique avec internet explorer
    Par Death83 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 13/08/2005, 12h25
  3. [C#] Truc bizarre avec DataSet
    Par bendj dans le forum ASP.NET
    Réponses: 15
    Dernier message: 13/07/2005, 19h51
  4. [swish]Lien spécial avec flash
    Par florentcorporation dans le forum EDI/Outils
    Réponses: 3
    Dernier message: 03/03/2004, 09h34

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