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 - "composant HTML" paramètrable et réutilisable


Sujet :

ASP.NET

  1. #1
    Nouveau candidat au Club
    Inscrit en
    Juin 2003
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 2
    Par défaut ASP.NET - "composant HTML" paramètrable et réutilisable
    Bonjour,

    Je cherche à créer proprement un "genre de classe" qui représenterai un objet HTML que je puisse inclure de manière dynamique un certain nombre de fois dans le corps d'une page. Exemple:

    Une page présente une liste de produits, le client peut choisir d'en afficher 10, 20 ou 50.

    Un produit se présente en HTML sous la forme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <div id="produitX">
       <img src="imgX" />
       <p>descriptionX<p>
    </div>
    J'aimerai pouvoir faire dans le code-behind de ma page quelque chose du genre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    for (i=0 ; i<20 ; i++)
    {
       MonProduit = new C_Produit(idProduit); // Impossible à faire avec un userControl
       MonProduit.Print(); //Pour simplifié...
    }
    Les userControls font se genre de chose, mais impossible de les initialiser de cette manière...

    Comment faire celà proprment ?
    Merci pour vos suggestions...

  2. #2
    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
    En effet, ça marche pas lorsque que tu utilises un usercontrol avec un paramètre dans le constructeur.
    Mais tu peux faire un truc dans le genre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    for (i=0 ; i<20 ; i++)
    {
       MonProduit = new C_Produit(); 
       MonProduit.IdProduit = idProduit;
       MonProduit.LoadData(); // Fais la meme chose que le constructeur avec un parametre
       MonProduit.Print(); //Pour simplifié...
    }

  3. #3
    Membre confirmé
    Profil pro
    Développeur Web
    Inscrit en
    Septembre 2007
    Messages
    173
    Détails du profil
    Informations personnelles :
    Localisation : France, Aube (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Septembre 2007
    Messages : 173
    Par défaut
    Tu pourrais aussi mettre ton user controle dans un repeater ou controle de ce genre par exemple.

  4. #4
    Nouveau candidat au Club
    Inscrit en
    Juin 2003
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 2
    Par défaut
    Merci de vous pencher sur mon problème et désolé pour ma réponse tardive, mais j'ai cru que mon message avait été effacer alors qu'il a simplement été déplacé (ça me rassure ).

    Citation Envoyé par lutecefalco Voir le message
    Mais tu peux faire un truc dans le genre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    for (i=0 ; i<20 ; i++)
    {
       MonProduit = new C_Produit(); 
       MonProduit.IdProduit = idProduit;
       MonProduit.LoadData(); // Fais la meme chose que le constructeur avec un parametre
       MonProduit.Print(); //Pour simplifié...
    }
    Mon problème avec ça est que j'ai l'impression que je dois prévoir l'endroit et le nombre de fois où mon UserControl sera utilisé, directement dans le fichier aspx.


    Alors que je voudrais pouvoir faire quelque chose de genre :

    Dans l'.aspx
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <div>
        <!-- A remplacer -->
    </div>
    Puis dans mon code-behind:
    Remplir le div par le code de mon "composant html" (UserControl ?) autant de fois que souhaité par le client.


    Je pourrais, également, écrire le tout dans une classe qui retournerait dans une méthode Print() le code HTML directement, ex:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    public class Ma_Class
    {
       ...
       public string Print()
       {
          string tmp;
     
          tmp = "<h2>" & nomProduit & "</h2>";
          tmp += ... // La suite du code HTML de présentation de mon produit
     
          return tmp;
       }
    }
    Mais je trouve pas cela très propre et je pense qu'il doit exister un mécanisme pour régler ce problème, qui me semble quand même très courant.

    @nasimpat7 => Je vais aller voir du côté des controls repeater.

    Encore merci pour vos conseils.

Discussions similaires

  1. Quote et double quote dans les requêtes paramétrées
    Par michel.souris dans le forum WinDev
    Réponses: 5
    Dernier message: 07/06/2013, 10h27
  2. Site ASP.NET privilege composant par rôle
    Par jowsuket dans le forum ASP.NET
    Réponses: 1
    Dernier message: 09/12/2010, 17h45
  3. Réponses: 10
    Dernier message: 03/12/2009, 21h45

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