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 :

Manipulation d'id dans un datalist


Sujet :

ASP.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Août 2008
    Messages
    265
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 265
    Points : 230
    Points
    230
    Par défaut Manipulation d'id dans un datalist
    Bonjour,

    Mon probleme est simple (a expliquer tout du moins). J'ai un datalist avec un champ cache. A certains endroits je veux que ce champ prenne un id bien precis. Ce qui me permettrait d'utiliser une ancre.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    asp:DataList CssClass="glossary_list" ID="dtlGlossary" runat="server" RepeatColumns="2"
                    RepeatDirection="Horizontal" OnItemDataBound="createAncre">
                    <ItemTemplate>
                        <table class="glossary_table">
                            <asp:HiddenField id="hfield" runat="server" />
                            <tr>
                                blablabla
                            </tr>
                        </table>
                    </ItemTemplate>
                </asp:DataList><br />

    Or ca ne marche pas, quand je regarde la source, ca m'affiche ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    id="ctl00_ContentPlaceHolder1_dtlGlossary_ctl09_b"


    Y a-t-il un moyen de reduire mon id a ca tout simplement :

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    Pour un contrôle serveur, l'id est toujours généré automatiquement
    Mais tu peux mettre un simple contrôle HTML à la place :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    ...
        <input type="hidden" id="ce_que_tu_veux"/>
    ...

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Août 2008
    Messages
    265
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 265
    Points : 230
    Points
    230
    Par défaut
    Ah oui en effet je viens de comprendre un truc.

    Mais j'ai oublie de dire un truc, c'est que j'ai besoin de modifier l'id dans mon code behind. On peut recuperer un input en behind ?

  4. #4
    Membre actif
    Profil pro
    Inscrit en
    Août 2008
    Messages
    265
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 265
    Points : 230
    Points
    230
    Par défaut
    Oui evidemment question bete...

    En revanche ta solution ne marche pas.

    Je viens de penser que j'ai pas mis tout mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    protected void createAncre(Object sender, DataListItemEventArgs e)
        {
            HtmlInputText hfield = (HtmlInputText)e.Item.FindControl("hfield");
            Label lbl = (Label)e.Item.FindControl("lblTitle");
            String newLetter = lbl.Text.Substring(0, 1).ToLower();
            if (newLetter!=HiddenField.Value)
            {
                hfield.ID = newLetter;
                HiddenField.Value = newLetter;
            }
        }


    Sinon il me faudrait un moyen de faire un :
    <a href="#ctl00_ContentPlaceHolder1_dtlGlossary_ctl09_b">A</a>

    Un truc du style "*" a la place du ctl09 que je ne connais pas forcement.

  5. #5
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    Je sais pas si ça répond à ta question, mais tu peux récupérer l'ID client de n'importe quel contrôle serveur avec sa propriété ClientID

  6. #6
    Membre actif
    Profil pro
    Inscrit en
    Août 2008
    Messages
    265
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 265
    Points : 230
    Points
    230
    Par défaut
    Hum je ne pense pas.

    J'explique un peu plus en detail :
    Ma datalist est assez longue et je veux pouvoir la remplir en y inserant des ancres. Ma liste est deja triee par ma requete SQL. J'ai donc juste a detecter la premiere lettre du titre de mon DataListItem pour savoir a qule endroit je dois inserer une ancre.

    J'ai donc une fonction behind qui verifie ca et qui change l'id d'un champ cache. Ce champ cache peut ensuite servir d'ancre.

    Mais il veut pas mettre l'id que je veux

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

Discussions similaires

  1. [C#]Comment formater les retours chariots dans un datalist
    Par nashouille dans le forum ASP.NET
    Réponses: 2
    Dernier message: 03/07/2006, 14h05
  2. Réponses: 4
    Dernier message: 01/05/2006, 23h02
  3. Réponses: 7
    Dernier message: 15/02/2006, 17h13
  4. Réponses: 2
    Dernier message: 17/11/2005, 09h59
  5. Réponses: 3
    Dernier message: 13/10/2004, 10h43

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