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 :

[Property] Définir une Property d'un tag via une fonction


Sujet :

ASP.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de Wookai
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2004
    Messages
    307
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2004
    Messages : 307
    Par défaut [Property] Définir une Property d'un tag via une fonction
    Salut !

    Toujours dans ma série de question liées au properties, j'aimerais pouvoir définir l'attribut d'un tag ASP.Net, par exemple le Text d'un <asp:Label>, à l'aide d'une fonction.

    Je pensais le faire de la manière suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <asp:Label ID="test" runat="server" Text='<%= Traduction("helloWorld") %>' />
    Mais ça ne fonctionne pas (le code n'est pas interprété). Comment puis-je obtenir un comportement similaire, mais sans (si possible) passer par le code behind. On peut toujours s'enregistrer au PreRender pour définir le texte, mais ça implique de créer une fonction par Label à traduire, ce qui fait beaucoup !

    Bien sûr, pour le Label, on pourrait simplement écrire le <span> à la main, et ça fonctionnerait, mais je dois aussi faire ça pour d'autres tags (Button, etc..) et d'auter Properties (ToolTip, etc...).

    Quelqu'un a-t-il une idée ? Merci d'avance !

  2. #2
    Membre Expert
    Avatar de Pongten
    Homme Profil pro
    IT Analyst & Software Developer
    Inscrit en
    Juin 2002
    Messages
    1 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : IT Analyst & Software Developer
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 173
    Par défaut
    En faisant un Page.Databind() dans le Page_Load ?

    Mais à priori, si c'est pour rendre le site multilingue, pourquoi n'utilises-tu pas le mécanisme des ressources ?

  3. #3
    Membre éclairé Avatar de Wookai
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2004
    Messages
    307
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2004
    Messages : 307
    Par défaut
    Citation Envoyé par Pongten Voir le message
    En faisant un Page.Databind() dans le Page_Load ?

    Mais à priori, si c'est pour rendre le site multilingue, pourquoi n'utilises-tu pas le mécanisme des ressources ?
    Désolé, je n'avais pas vu ton post !

    J'ai essayé, le page.Databind() ne change absolument rien (le code n'est pas interprété).

    Si je n'utilise pas les resx, c'est parce que je veux pouvoir faire faire la traduction aux utilisateurs, et donc traduire "à chaud" : l'utilisateur se logge et peut diretement traduire les éléments depuis une interface d'admin.

    De plus, j'aurais aussi besoin de ça d'une manière plus générale, pas uniquement pour la traduction (même si ces cas sont plus rares et pourraient se faire via le code-behind ...).

    PS: je précise que dans un contrôle "databindé", par exemple à l'intérieur d'un TemplateField d'un GridView, ceci fonctionne parfaitement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ToolTip='<%# Traduction("edit") %>'

  4. #4
    Membre expérimenté
    Avatar de SoBaKa
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2006
    Messages
    242
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2006
    Messages : 242
    Par défaut
    encore une question pour toi ^^

    la méthode Traduction n'est pas en private ? (me souviens m'être pris la tête avec ça au début, perso, je la met en protected)

  5. #5
    Membre éclairé Avatar de Wookai
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2004
    Messages
    307
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2004
    Messages : 307
    Par défaut
    Héhéhé ... Non non, elle est bien public. En fait, je pense que si c'était un problème de syntaxe/permissions/etc... il me mettrait une erreur non ?

  6. #6
    Membre Expert
    Avatar de Pongten
    Homme Profil pro
    IT Analyst & Software Developer
    Inscrit en
    Juin 2002
    Messages
    1 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : IT Analyst & Software Developer
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 173
    Par défaut
    et si tu retires les ' ? ça donne quoi ?

  7. #7
    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 : 43
    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
    Par défaut
    Normal, les simples quotes ne sont pas conformes avec la syntaxe XML...
    Ca marche pas si tu fais comme ça ?
    Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
    <asp:Label ID="test" runat="server" Text="<%= Traduction(&quot;helloWorld&quot;) %>" />

    EDIT: bon, ça m'énerve, il me remplace '& quot;' par '"'... bref, ce que je veux dire c'est qu'il faut remplacer les guillemets dans l'attribut par '& quot;' (sans l'espace)

  8. #8
    Membre éclairé Avatar de Wookai
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2004
    Messages
    307
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2004
    Messages : 307
    Par défaut
    En fait, j'ai mis des guillements simples car c'est ce qu'il faut faire dans un compostant "databindé", lorsqu'on utilise par exemple Eval() ou Bind().

    Avec des guillements doubles, j'ai l'erreur suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Les balises serveur ne peuvent pas contenir des constructions <% ... %>.
    Ce qui me fait malheureusement dire que ça ne dois pas être possible ! Comment faire d'autre ?

  9. #9
    Membre expérimenté
    Avatar de SoBaKa
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2006
    Messages
    242
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2006
    Messages : 242
    Par défaut
    Essaie plutôt avec ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <asp:Label ID="test" runat="server" Text='<%# Traduction("helloWorld") %>' />
    la seule chose que j'ai changé c'est <%= en <%# et aussi autre chose, on ne sais jamais, ta méthode Traduction te renvoie bien un String ? ^^

  10. #10
    Membre éclairé Avatar de Wookai
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2004
    Messages
    307
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2004
    Messages : 307
    Par défaut
    J'avais aussi essayé ! Ca revient au même que dans mon premier post : le code n'est pas interprété et "passe tout droit"...

    Ma fonction renvoie bien un String, oui...

    Merci pour ton aide en tous cas, mais je commence à croire que je vais vraiment devoir me taper toutes ces fonctions PreRender dans le code-behind ...

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 05/03/2008, 19h30
  2. [ODBC] Sécuriser une base de données Access via une interface en PHP
    Par maraly dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 07/08/2007, 08h49
  3. Réponses: 9
    Dernier message: 25/02/2007, 13h46
  4. Réponses: 5
    Dernier message: 10/11/2006, 11h00
  5. Réponses: 6
    Dernier message: 09/11/2005, 17h29

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