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 :
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 <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" /> <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>
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; }
Partager