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 :

Quelle sont les bonnes pratiques pour charger un contrôle ascx dynamiquement?


Sujet :

ASP.NET

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    116
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 116
    Points : 63
    Points
    63
    Par défaut Quelle sont les bonnes pratiques pour charger un contrôle ascx dynamiquement?
    Voilà j'ai un fichier news.ascx que je souhaite insérer dans le div d'une webform truc.aspx, j'ai oublié le code pour ce faire, pourriez-vous m'aider s'il vous plait ?

    Merci

  2. #2
    Membre actif
    Inscrit en
    Janvier 2005
    Messages
    218
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 218
    Points : 247
    Points
    247
    Par défaut
    Dans ton fichier aspx, tu peux rajouter dans l'entête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <%@ Register TagPrefix="Entete" TagName="EnteteName" Src="~/...Chemin.../News.ascx" %>
    ...
    Plus loin dans ta div :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <div><Entete:EnteteName id="Entete" runat="Server"></Entete:EnteteName></div>

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    116
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 116
    Points : 63
    Points
    63
    Par défaut
    Citation Envoyé par Akanath Voir le message
    Dans ton fichier aspx, tu peux rajouter dans l'entête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <%@ Register TagPrefix="Entete" TagName="EnteteName" Src="~/...Chemin.../News.ascx" %>
    ...
    Plus loin dans ta div :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <div><Entete:EnteteName id="Entete" runat="Server"></Entete:EnteteName></div>
    Merci ca fonctionne mais je souhaiterai faire ca à partir du code car le bloc news.ascx doit appaitre sur plusieurs pages et je voudrai le mettre dans ma master page .

  4. #4
    Modérateur

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2007
    Messages
    1 996
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 996
    Points : 3 106
    Points
    3 106
    Par défaut
    Avec,
    tu devrais y arriver.

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    116
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 116
    Points : 63
    Points
    63
    Par défaut
    j'ai essayé de mettre ceci dans le code behind de ma master page :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
            UserControl newsCtrl = (UserControl)Page.LoadControl("~/news.ascx");
            news n = new news();
            n = newsCtrl as news;
            PlaceHolder1.Controls.Add(n);
    Mais à chaque fois j'ai cette erreur sur la dernière ligne ci dessus : La référence d'objet n'est pas définie à une instance d'un objet.

  6. #6
    Expert éminent
    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
    Points : 9 512
    Points
    9 512
    Par défaut
    Salut,

    Chez moi, ton code marche mais il faut que le place holder soit déclaré en dehors du content holder de la master page:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <body>
        <form id="form1" runat="server">
            <div>
                <asp:PlaceHolder ID="PlaceHolder1" runat="server"></asp:PlaceHolder>
                <asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server">
                </asp:ContentPlaceHolder>
            </div>
        </form>
    </body>
    Et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    namespace WebApplication1
    {
        public partial class Site1 : System.Web.UI.MasterPage
        {
            protected void Page_Load(object sender, EventArgs e)
            {
                WebUserControl1 n = (WebUserControl1)Page.LoadControl("~/WebUserControl1.ascx");
                PlaceHolder1.Controls.Add(n);
            }
        }
    }
    Peux-tu mettre le message d'erreur complet (la trace)?

    A+

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    116
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 116
    Points : 63
    Points
    63
    Par défaut
    Merci à vous, je suis un con, en fait ca fonctionne si je créé un projet web, de fait un namespace mais si je créé un site web il ne créé pas de namespace et ca ne fonctionne pas

    Merci encore de votre aide

  8. #8
    Expert éminent
    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
    Points : 9 512
    Points
    9 512
    Par défaut
    Citation Envoyé par sarapis Voir le message
    Merci à vous, je suis un con
    Meuh non...

    Par contre, mmmh, j'ai du mal à voir le rapport avec le namespace. On peut très bien créer des webuser control dans un site web et les intégrer à une page ASPX.

    A+

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

Discussions similaires

  1. [Python 3.X] Import dans des modules? Comment faire et quelles sont les bonnes pratiques?
    Par Davjack dans le forum Général Python
    Réponses: 2
    Dernier message: 03/07/2014, 12h13
  2. Réponses: 5
    Dernier message: 25/05/2009, 14h59
  3. Réponses: 33
    Dernier message: 18/04/2009, 12h36
  4. Quelles sont les bonnes pratiques avec Zend Framework ?
    Par Community Management dans le forum Zend Framework
    Réponses: 14
    Dernier message: 02/02/2009, 20h35
  5. [C#/ASP.Net/DAL] Quelles sont les bonnes pratiques ?
    Par fouhaa dans le forum Accès aux données
    Réponses: 4
    Dernier message: 13/07/2006, 23h54

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