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 :

Placer le text d'un bouton de DetailView par CodeBehind


Sujet :

ASP.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Par défaut Placer le text d'un bouton de DetailView par CodeBehind
    Bonjour tout le monde.

    J'ai mis en place un grid View avec une définition des Fields. Donc j'ai mis AutoGenerateInsertButton à False et j'ai mis deux boutons dans les Fields.

    Maintenant je voudrais lui coller le nom du bouton à partir du CodeBehind, enfin, à partir de la BDD pour être éxact. Mon site sera en plusieurs langue, donc aucun texte ne sera sur les pages, tout sera stocké en base pour être piocher en fonction de la langue choisie our la session.

    Pour l'instant je me lance dans un exercice périlleux de recherche de contrôle et Ctype. Mais vous avez peut-être un truc plus simple ?

    Pour être plus clair voici mon code de base :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <asp:DetailsView ID="EventDetail" runat="server" DefaultMode="Edit"
                DataSourceID="SqlDataSourceDetail" DataKeyNames="id" Width="500px"
                AutoGenerateEditButton="True" 
                AutoGenerateInsertButton="False"
                AutoGenerateRows="False" 
                GridLines="None"
                >
                <HeaderStyle HorizontalAlign="Right" />
                <Fields>
                    <asp:BoundField DataField="name" SortExpression="name" ControlStyle-Width="400" />
                    <asp:ButtonField ButtonType="Button" CommandName="Insert" ControlStyle-Width="250" ItemStyle-HorizontalAlign="Center"/>
                    <asp:ButtonField ButtonType="Button" Text="Annuler" CommandName="Cancel" ControlStyle-Width="250" ItemStyle-HorizontalAlign="Center"/>
                </Fields>
            </asp:DetailsView>
    et dans mon CodeBehind, j'essaie un truc comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    With EventDetail
                .FooterText = dt.row(0).item("texte-fr")
                With .Fields(0)
                    .HeaderText = dt.row(0).item("hd-fr")
                End With
                With .Fields(3)
                    .Text = dt.row(0).item("btnEnr-fr")
                End With
            End With
    Mais la propriété Text il connait pas pour le Fields(3).

    Voyez vous le truc ?

  2. #2
    Expert confirmé
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Par défaut
    Salut,

    Dans le projet sur lequel je travaille on fait aussi une traduction en 6 langues. Pour ce faire, on gère deux choses:
    1. La traduction de texte dynamique (dépend de l'enregistrement consulté)
    2. La traduction de texte statique (labels, titres)

    1. La traduction de texte dynamique: on tient compte de la culture choisie par l'internaute (fr-FR, en-GB, ...) et de l'identifiant de l'enregistrement pour obtenir la traduction. Un identifiant en base dépend de la table et du champ dans lequel il se trouve.
    2. La traduction de texte statique: les textes à traduire placés dans le code HTML. Ils sont identifiés par une clef (ex: ##123##) et remplacés dans le code grâce à des expressions régulière. On récupère dans un dictionnaire (au sens propre et figuré) la traduction en fonction de la culture.

    On peut considérer que la méthode est de la forme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Translator.GetTranslation(clef, culture)
    Pour de bonnes performances, il faut stocker les traduction dans des variable statiques de type Dictionary. Pour accélérer la recherche dans les dictionnaires, répartir les traductions dans autant de variables que de cultures. Ou faire un dictionnaire de dictionnaires.

    A+
    "Winter is coming" (ma nouvelle page d'accueil)

  3. #3
    Membre expérimenté
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Par défaut
    Merci Immobilis, je prends note de tes remarques pour mon prochain boulot sur mon site. Même si je patauge comme un débile sur le dictionary, faudra que je relise à fond la MSDN et les tuto sur le sujet.

    Mais l'ennui c'est que mon souci n'est pas encore sur la traduction, mais juste sur le fait d'envoyer le text du bouton de manière dynamique, vois tu ?

  4. #4
    Expert confirmé
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Par défaut
    Mettons que tu fasses
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MonBouton.text = "@@123@@";
    Tu peux faire une méthode qui va récupérer tout le code HTML de ta page lors du PreRender et qui, grâce à une expression régulière, va chercher toutes les occurences de "@@XXX@@@" puis, te les remplacer par la bonne traduction en appelant la méthode:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Translator.GetTranslation("123", "fr-FR");
    Par exemple.

    A+
    "Winter is coming" (ma nouvelle page d'accueil)

  5. #5
    Membre expérimenté
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Par défaut
    Encore merci pour ta réponse, mais ce n'est toutjours pas la solution de mon souci.

    Faire une méthode pour faire comme tu dis, pourquoi pas, même si je trouve ça super lourd en terme de performance.

    Mais cela ne marchera pas parce que je ne peut pas mettre "MonBouton.text = "@@123@@" dans le code sans avoir une erreur.

    Mon souci est de pouvoir modifier le Text du bouton dans le CodeBehind et ça, visiblement il ne sait pas faire.

Discussions similaires

  1. [XL-2003] Placer le texte à gauche dans un bouton
    Par NEC14 dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 26/05/2009, 12h48
  2. placer un texte dans une textarea en cliquant sur un bouton
    Par BernardT dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 14/11/2005, 17h17
  3. Réponses: 4
    Dernier message: 14/11/2005, 15h58
  4. [JButton] Afficher texte en survolant bouton.
    Par Galima dans le forum Composants
    Réponses: 2
    Dernier message: 04/06/2004, 22h21
  5. Réponses: 9
    Dernier message: 26/04/2004, 21h51

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