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 :

[ASP.NET 2.0] Comment accéder aux Contrôls contenus ds un EmptyDataTemplate


Sujet :

ASP.NET

  1. #1
    Membre habitué Avatar de stephane.net
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    170
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 170
    Points : 158
    Points
    158
    Par défaut [ASP.NET 2.0] Comment accéder aux Contrôls contenus ds un EmptyDataTemplate
    ci-dessous l'EmptyDataTemplate de mon Gridview :

    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
    <EmptyDataTemplate>
    To create a new address fill the texbox below and click to the "Add" button.<br />
    <br />
    <table>
       <tr>
    	<td><asp:TextBox ID="txbAddressName" runat="server" Text="Address Name" Width="140px" ToolTip="Address Name" onClick="clearField(this.id,'onClick')" onBlur="clearField(this.id,'onBlur')"/></td>
    	<td> : </td>
    	<td><asp:TextBox ID="txbStreet" runat="server" Text="Street" Width="150px" ToolTip="Street" /></td>
    	<td><asp:TextBox ID="txbZipCode" runat="server" Text="ZipCode" Width="60px" ToolTip="ZipCode"/></td>
    	<td><asp:TextBox ID="txbCity" runat="server" Text="City" Width="80px" ToolTip="City"/></td>
    	<td><asp:TextBox ID="txbState" runat="server" Text="State" width="100px" ToolTip="State"/></td>
    	<td><asp:TextBox ID="txbCountry" runat="server" Text="Country" Width="80px" ToolTip="Country"/></td>
    	<td><asp:CheckBox ID="ckbIsAvailable" runat="server" Checked="true" ToolTip="Is Available Now ?"/></td>
       </tr>
    </table>
    <asp:Button ID="btnAdd" runat="server" Text="Add" CommandName="EmptyAdd" CausesValidation="false" />
    </EmptyDataTemplate>
    Comment accéder à la propriété Text du control txbAddressName ?

    merci pour votre aide,

    Stéphane

  2. #2
    Membre habitué Avatar de stephane.net
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    170
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 170
    Points : 158
    Points
    158
    Par défaut
    Bonjour,
    Je relance sur ce sujet, mais comme j'ai déjà lu quelque part, "si tu n'as pas de réponse à ton pblm, c'est peut être qu'il n'y a pas de pblm ... !" (auteur inconnu)

  3. #3
    Membre expert

    Profil pro
    Inscrit en
    Septembre 2002
    Messages
    1 581
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2002
    Messages : 1 581
    Points : 3 016
    Points
    3 016
    Par défaut
    Quel est ton problème? Tu peux y accéder simplement comme ça

    Non?

  4. #4
    Membre habitué Avatar de stephane.net
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    170
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 170
    Points : 158
    Points
    158
    Par défaut
    A priori, dans un tag du style "Template" non

    (je précise que j'ai réessayé... pour être sûr de ne pas dire de ...)

  5. #5
    Membre expert

    Profil pro
    Inscrit en
    Septembre 2002
    Messages
    1 581
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2002
    Messages : 1 581
    Points : 3 016
    Points
    3 016
    Par défaut
    Je dirais que comme ceci ça fonctionne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TextBox txt = GridView1.Controls[0].Controls[0].FindControl("txbAddressName") as TextBox;
    Etant donné que tu n'auras toujours qu'une seule ligne puisque le template s'affiche uniquement quand la source de données est vide, ce devrait être un moyen sûr

  6. #6
    Membre habitué Avatar de stephane.net
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    170
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 170
    Points : 158
    Points
    158
    Par défaut
    ça marche merci

    une petite question, pourquoi est-ce qu'il y a deux niveaux de contrôls ?

  7. #7
    Membre expert

    Profil pro
    Inscrit en
    Septembre 2002
    Messages
    1 581
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2002
    Messages : 1 581
    Points : 3 016
    Points
    3 016
    Par défaut
    Citation Envoyé par stephane.net
    ça marche merci

    une petite question, pourquoi est-ce qu'il y a deux niveaux de contrôls ?
    En fait, bien que ASP.NET tente tant bien que mal de faire complètement abstraction du contexte WEB et du HTML, il est toujours bien utile d'avoir en tête le modèle HTML.

    Qu'est-ce qu'un GridView?

    Ce n'est qu'une table HTML (<table>) contenant des lignes <tr> et des cellules <td>. Sachant cela, dans le cas d'une GridView en <EmptyDataTemplate> tu sais que tu obtiens une correspondance HTML à ceci

    <table> ---> 1er niveau de contrôle
    <tr> --> 2ème niveau de contrôle (j'ai appliqué le findcontrol sur ce niveau)
    <td>blablabla</td> ------> 3ème niveau
    <td>etc...</td></tr> -------> 3ème niveau
    </table>

    On aurait donc aussi pu coder le truc comme ceci:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    GridView1.Controls[0].Controls[0].Controls[index du contrôle à récupérer]
    et se passer de la méthode FindControl, ceci dit elle est plus explicite pour une relecture de code

  8. #8
    Membre habitué Avatar de stephane.net
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    170
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 170
    Points : 158
    Points
    158
    Par défaut
    ok,

    le rendu html d'un control peut être très utile alors... merci !!

    Stéphane

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 23/06/2014, 10h44
  2. [Débutant] C# Comment accéder aux propriétés des contrôle sur un autre formulaire
    Par Claude_Azoulai dans le forum Visual Studio
    Réponses: 0
    Dernier message: 03/04/2013, 17h04
  3. Comment accéder aux propriétés d’un contrôle personnalisé par un style?
    Par paj78 dans le forum Windows Presentation Foundation
    Réponses: 9
    Dernier message: 03/02/2010, 11h57
  4. Comment accéder aux contrôles depuis du code?
    Par Leelith dans le forum Windows Presentation Foundation
    Réponses: 9
    Dernier message: 15/12/2009, 21h02
  5. [ASP.NET2.0] Comment accéder aux différentes Sessions ?
    Par mainecoon dans le forum ASP.NET
    Réponses: 1
    Dernier message: 14/06/2007, 10h19

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