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 :

OnItemDataBound --> Problème avec DataList/Repeater


Sujet :

ASP.NET

  1. #1
    Nouveau candidat au Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 1
    Par défaut OnItemDataBound --> Problème avec DataList/Repeater
    Bonsoir

    Le context:

    j'affiche des sous-catégories selon des catégories via un Datalist ou Repeater selon le cas; un 'Binding' tout ce qu'il y a de plus classique!
    Vu que je fais de l'URL Rewriting, j'ai donc besoins de transformer les 'String' que je 'Bind'. Je les passe en "Lower', remplace les espaces par des tirets et enlève les accents dans le Code-Behind grâce à l'argument 'OnItemDataBound'.

    Le problème c'est que ça ne fonctionne qu'à moitié !!!

    Seules un élément sur 2 est transformé dans mon DataList ou Repeater !
    Voilà maintenant un petit moment que je ne comprends pas pourquoi ?

    Si une âme charitable pouvait m'aider ... Merci d'avance.

    le Code .aspx :
    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
     
    <asp:DataList ID="dtlGroupe" runat="server" RepeatDirection="Vertical" RepeatColumns="2" OnItemDataBound="ItemDataBound">
        <HeaderTemplate>
            <br />
            <ul>
        </HeaderTemplate>
        <ItemTemplate>
            <li class="article">
                <img id="trait" alt="ligne" src="Images/ligne.png" runat="server" />&nbsp;&nbsp;&nbsp;<asp:Label
                    CssClass="libelle" ID="titre" Text='<%#  DataBinder.Eval(Container.DataItem,"libelle_groupe")%>'
                    runat="server"></asp:Label>
                <ul>
                    <li class="image">
                        <asp:HyperLink ID="laPhoto" ImageUrl='<%# "PhotoGroupe/" + DataBinder.Eval(Container.DataItem,"url_photo_groupe")%>'
                            NavigateUrl='<%# "~/" + Request["lunivers"] + "-" + DataBinder.Eval(Container.DataItem,"libelle_groupe") + "_" + DataBinder.Eval(Container.DataItem,"code_groupe") + ".aspx" %>'
                            runat="server">GROUPE</asp:HyperLink>
                        <asp:Label ID="lblAccroche" CssClass="texte" runat="server" Text="TEST"></asp:Label>
                    </li>
                </ul>
                <br />
            </li>
        </ItemTemplate>
        <FooterTemplate>
            </ul>
        </FooterTemplate>
    </asp:DataList>
    le Code .aspx.cs :
    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
     
    protected void Page_Load(object sender, EventArgs e)
            {
                if (!Page.IsPostBack)
                bindMenu();
            }
     
            protected void bindMenu()
            {
                string stringSQL = "";
     
                if (Request["univers"] != null)
                {
                    stringSQL = "Select code_groupe,libelle_groupe,url_photo_groupe FROM GROUPE where code_univers like '" + Request["univers"] + "' ";
                }
     
                bindGroupe(stringSQL);
            }
     
            private void bindGroupe(string stringSQL)
            {
                managerSql SQLreq = new managerSql();
     
                dtlGroupe.DataSource = SQLreq.execCommandSQL2DV(stringSQL);
                dtlGroupe.DataBind();
            }
     
            protected void ItemDataBound(object sender, DataListItemEventArgs e)
            {
                if (e.Item.ItemType == ListItemType.Item)
                {
                    string tempHyperLink = "";
                    tempHyperLink = ((HyperLink)e.Item.FindControl("laPhoto")).NavigateUrl.ToLower().ToString();
                    ((HyperLink)e.Item.FindControl("laPhoto")).NavigateUrl = remplaceChar(tempHyperLink);
                }
            }
     
            protected string remplaceChar(string chaine)
            {
                string nouvelleChaine = "";
                try
                {
                    nouvelleChaine = chaine.Replace(" ", "-").Replace("é", "e").Replace("è", "e");
                }
                catch
                {
                }
                return nouvelleChaine;
            }

  2. #2
    Membre très actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2007
    Messages
    871
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Février 2007
    Messages : 871
    Par défaut AlternateItem DataBound
    Sur la ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (e.Item.ItemType == ListItemType.Item)
    remplacer Par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)

Discussions similaires

  1. Réponses: 2
    Dernier message: 02/05/2011, 10h43
  2. Problème avec asp:repeater et injection de js
    Par lutecefalco dans le forum ASP.NET
    Réponses: 1
    Dernier message: 25/05/2007, 12h12
  3. problème avec "repeat"
    Par chti_juanito dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 29/06/2006, 15h10
  4. problème avec repeat until
    Par KHEOPS1982 dans le forum Delphi
    Réponses: 13
    Dernier message: 16/06/2006, 09h54

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