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 :

ListView ASP.NET : Comment modifier dynamiquement dans le code behind, les titres de mes colonnes ?


Sujet :

ASP.NET

  1. #1
    Membre habitué Avatar de Johann7751
    Profil pro
    Analyste Programmeur Junior
    Inscrit en
    Février 2009
    Messages
    234
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Analyste Programmeur Junior

    Informations forums :
    Inscription : Février 2009
    Messages : 234
    Points : 142
    Points
    142
    Par défaut ListView ASP.NET : Comment modifier dynamiquement dans le code behind, les titres de mes colonnes ?
    Bonjour,

    J'ai une listView dans un UserControl :

    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
     
     
            <div class="divListViewMapping">
                <asp:ListView runat="server" id="ListViewMapping" EnableViewState="false" OnItemDataBound="ListViewMapping_ItemDataBound">
                        <LayoutTemplate>
                            <table runat="server" id="table2">
                                <tr id="Tr1" runat="server" class="Tr1 qbe">
                                    <th id="Th11" runat="server" class="ThValueToMap">Valeur à mapper</th>
                                    <th id="Th12" runat="server" class="ThMapChoice">Choix de mappage</th>
                                </tr>
                                <tr runat="server" id="itemPlaceholder" >
                                </tr>
                            </table>
                        </LayoutTemplate>
                        <ItemTemplate>
                                <tr id="Tr2" runat="server" class="Tr2">
                                    <td id="Td21" align="right" runat="server" class="Td21">
                                        <asp:Label ID="lblValue" runat="server" Text='<%# Eval("Lib") %>'></asp:Label>
                                    </td>
                                    <td id="Td22" runat="server" class="Td22">
                                        <asp:DropDownList ID="ddlValuesForMapping" runat="server" AutoPostBack="false" CssClass="ddlValuesForMapping"></asp:DropDownList>
                                    </td>
                                </tr>
                                <tr id="separation">
                                    <td colspan="5">
                                        <hr />
                                    </td>
                                </tr>
                        </ItemTemplate>
                </asp:ListView>
             </div>
    Dans le code behind, j'aimerais savoir comment faire pour accéder/modifier les valeurs des titres de mes colonnes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
                        <LayoutTemplate>
                            <table runat="server" id="table2">
                                <tr id="Tr1" runat="server" class="Tr1 qbe">
                                    <th id="Th11" runat="server" class="ThValueToMap">Valeur à mapper</th>
                                    <th id="Th12" runat="server" class="ThMapChoice">Choix de mappage</th>
                                </tr>
                                <tr runat="server" id="itemPlaceholder" >
                                </tr>
                            </table>
                        </LayoutTemplate>
    Voilà j'aimerais changer "Valeur à mapper" et "Choix de mappage", dans mon code behind.

    Vous avez une idée ?
    Merci de votre aide.

  2. #2
    Membre expérimenté
    Avatar de jbrasselet
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Mars 2006
    Messages
    1 022
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 022
    Points : 1 413
    Points
    1 413
    Par défaut
    Tu as essayé d'accéder à ton titre via un ListViewMapping.FindControl("Th11") ?
    Après il faut que tu castes ton objet en HTMLControl je crois. Puis regarde les propriété pour savoir laquelle changer.

    Je partirais comme ça.
    L'urgent est fait, l'impossible est en cours, pour les miracles prévoir un délai.

  3. #3
    Membre habitué Avatar de Johann7751
    Profil pro
    Analyste Programmeur Junior
    Inscrit en
    Février 2009
    Messages
    234
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Analyste Programmeur Junior

    Informations forums :
    Inscription : Février 2009
    Messages : 234
    Points : 142
    Points
    142
    Par défaut
    Merci de m'avoir mis sur la voie !

    Pour accéder aux titres de mes colonnes, il faut déjà le faire après le DataBind() de ma ListView.
    Ensuite il suffit de faire comme ceci :

    - Faire des FindControl() en cascade jusqu'à trouver le 'th'
    - Cast mon 'th' en HtmlTableCell
    - Modifier la propriété InnerText de HtmlTableCell



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
                System.Web.UI.HtmlControls.HtmlTableCell Th11 = ListViewMapping.FindControl("table2").FindControl("Tr1").FindControl("Th11") as System.Web.UI.HtmlControls.HtmlTableCell;
                System.Web.UI.HtmlControls.HtmlTableCell Th12 = ListViewMapping.FindControl("table2").FindControl("Tr1").FindControl("Th12") as System.Web.UI.HtmlControls.HtmlTableCell;
                Th11.InnerText = "";
                Th12.InnerText = "";

  4. #4
    Membre expérimenté
    Avatar de jbrasselet
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Mars 2006
    Messages
    1 022
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 022
    Points : 1 413
    Points
    1 413
    Par défaut
    Tu ne peux pas faire un FindControl sur le th1 directement ? Il me semblait que c'était jouable...
    L'urgent est fait, l'impossible est en cours, pour les miracles prévoir un délai.

  5. #5
    Membre habitué Avatar de Johann7751
    Profil pro
    Analyste Programmeur Junior
    Inscrit en
    Février 2009
    Messages
    234
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Analyste Programmeur Junior

    Informations forums :
    Inscription : Février 2009
    Messages : 234
    Points : 142
    Points
    142
    Par défaut
    Citation Envoyé par jbrasselet Voir le message
    Tu ne peux pas faire un FindControl sur le th11 directement ? Il me semblait que c'était jouable...
    Tu as raison, on peut effectivement accéder directement au th11.
    Je pensais qu'avec le FindControl(), on avait seulement accès aux éléments enfants directs, mais en fait je vois que non ..

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

Discussions similaires

  1. [ASP.NET / C#] Nettoyer un QueryString par code behind
    Par User.Anonymous dans le forum ASP.NET
    Réponses: 5
    Dernier message: 25/10/2007, 17h57
  2. Réponses: 1
    Dernier message: 04/04/2007, 09h39
  3. Réponses: 1
    Dernier message: 20/01/2007, 11h47
  4. [C# / ASP.NET] Comment creer une listbox dynamique
    Par arioule dans le forum ASP.NET
    Réponses: 2
    Dernier message: 06/12/2006, 22h03

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