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 :

Appeler du code depuis l'attribut 'Text' d'un label dans ma page aspx


Sujet :

ASP.NET

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

    Informations professionnelles :
    Activité : Analyste Programmeur Junior

    Informations forums :
    Inscription : Février 2009
    Messages : 234
    Par défaut Appeler du code depuis l'attribut 'Text' d'un label dans ma page aspx
    Bonjour,


    Je veux appeler dans ma page aspx, une fonction écrite dans le code behind (aspx.cs).

    Plus particulièrement, je veux appeler une fonction qui renvoie un string, à l'intérieur de la propriété 'Text' d'un Label

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <asp:Label runat="server" ID="lblTest" Text="<%    %>"></asp:Label>

    Disons que j'ai cette fonction dans mon code behind :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     public string maFonction()
        {
            return "toto";
        }
    Que faut il mettre dans les <% %> ?
    Comment appeler cette fonction ?

  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,

    Il faut faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Text='<%# MaFonction()%>'
    Plus d'infos ici: http://dotnet.developpez.com/faq/asp...age=scriptlets

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

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

    Informations professionnelles :
    Activité : Analyste Programmeur Junior

    Informations forums :
    Inscription : Février 2009
    Messages : 234
    Par défaut
    Voici le code de ma page aspx :

    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
    <%@ Page Language="C#" AutoEventWireup="true" CodeFile="UnePage.aspx.cs" Inherits="MonDossier_UnePage" %>
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
     
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <title>Page sans titre</title>
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
            <asp:Label runat="server" ID="lblTest" Text='<%# maFonction() %>' ></asp:Label>
            <br />
        </div>
        </form>
    </body>
    </html>
    Et celui de la page aspx.cs associée :

    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
    using System;
    using System.Collections;
    using System.Configuration;
    using System.Data;
    using System.Linq;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.HtmlControls;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Xml.Linq;
     
    public partial class MonDossier_UnePage : System.Web.UI.Page
    {
     
        public static string maFonction()
        {
            string chaine = "toto";
     
            return chaine;
        }
    }
    J'ai rien d'affiché, une page blanche !
    Pourquoi ? J'oublie quoi ?

  4. #4
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Par défaut
    Pourquoi tu veux setter ta propriété Text dans le code aspx, et non dans le code behind?

    Sinon, j'aurais mis <%= %>

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

    Informations professionnelles :
    Activité : Analyste Programmeur Junior

    Informations forums :
    Inscription : Février 2009
    Messages : 234
    Par défaut
    OK, j'avais mal lu le lien que tu m'avais indiqué.

    Il manquait :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    protected override void OnLoad(EventArgs e)
        {
            if (!IsPostBack)
            {
                lblTest.DataBind();
            }
            base.OnLoad(e);
        }
    dans le code behind.


    Au fait merci pour ton lien depuis le temps que je cherchait un truc comme ça pour comprendre la façon de code directement dans une page aspx ..

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

    Informations professionnelles :
    Activité : Analyste Programmeur Junior

    Informations forums :
    Inscription : Février 2009
    Messages : 234
    Par défaut
    Citation Envoyé par lutecefalco Voir le message
    Pourquoi tu veux setter ta propriété Text dans le code aspx, et non dans le code behind?

    Sinon, j'aurais mis <%= %>
    C'est pour l'exemple, pour savoir comment faire.
    J'aurais besoin de ce principe plus tard dans mon code.

    Et sinon, le scriptlet d'expressions systématiques <%= expression %> ne fonctionne pas pour les valeurs d'attributs. C'est indiqué dans le lien.

  7. #7
    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
    Citation Envoyé par lutecefalco Voir le message
    Pourquoi tu veux setter ta propriété Text dans le code aspx, et non dans le code behind?
    J'étais pas trop pour au début et avais tendance à tout mettre en code behind. Toutefois, je trouve que cette méthode permet de mieux répartir le code et ne pas surcharger le code behind.

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

  8. #8
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Par défaut
    Citation Envoyé par Immobilis Voir le message
    J'étais pas trop pour au début et avais tendance à tout mettre en code behind. Toutefois, je trouve que cette méthode permet de mieux répartir le code et ne pas surcharger le code behind.

    A+
    Ouais mais tu surcharges le code aspx
    Pour ma part, le code aspx se limite au design, et au js

  9. #9
    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
    Citation Envoyé par lutecefalco Voir le message
    Ouais mais tu surcharges le code aspx
    Ca il faut bien que le code soit quelque part

    Cela donne tout de même un avantage énorme quand on fait un site qui doit avoir le code HTML le plus léger possible pour des besoins d'optimisation du code pour les moteurs de recherche. Moins les moteurs de recherche ont de choses à lire mieux ils se portent. Or le rendu des contrôles serveurs est parfois très verbeux. Ainsi, tu peux faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href = '<%# GetUrl()%>'>
    Pour avoir une URL "parfaite".

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

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

Discussions similaires

  1. Execution de code c# dans les pages aspx
    Par DoroT17 dans le forum SharePoint
    Réponses: 3
    Dernier message: 09/12/2008, 11h00
  2. Réponses: 4
    Dernier message: 08/05/2008, 16h07
  3. Récupérer variable code behind dans ma page aspx
    Par Erazion dans le forum ASP.NET
    Réponses: 2
    Dernier message: 25/03/2008, 18h54
  4. Réponses: 2
    Dernier message: 22/08/2006, 11h28
  5. compiler du code depuis un fichier texte
    Par DAGADA dans le forum Langage
    Réponses: 9
    Dernier message: 09/05/2006, 13h53

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