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 :

UserControl ASP.NET/C# Definition?


Sujet :

ASP.NET

  1. #1
    Candidat au Club
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2011
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2011
    Messages : 7
    Points : 3
    Points
    3
    Par défaut UserControl ASP.NET/C# Definition?
    Bonjour,

    Je suis actuellement en apprentissage de l' ASP.NET/C#, je viens de réaliser une petite application web fonctionnelle pour la recherche de candidat avec une base de donnée sql.server.

    Cependant j'aimerais optimiser mon code je m'explique :

    A ce jour j'utilise un repeater pour ma page "resultat.aspx" et un autre pour ma page "affichage.apsx" je sais que je doit utiliser un UserControl pour me permettre de n'avoir plus qu'un repeater à plusieur endroits.

    Donc voila ma question comment fonctionne un UserControl?
    Comment l'utiliser et le creer avec un repeater?

    Merci d'avance de vos réponses

    Cordialement

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Février 2006
    Messages
    197
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2006
    Messages : 197
    Points : 279
    Points
    279
    Par défaut
    Un usercontrol est un fichier .ascx qui contient du code et que tu appel depuis un autre code.

    Dans tes pages qui doivent l'intégrer, tu dois registrer ton control en haut de la page :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <%@ Register TagPrefix="uc" TagName="MonControl" Src="~/Controls/MonControl.ascx" %>
    et après, tu peux l'appeler dans le code ou tu veux :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <uc:MonControl ID="MonControl" runat="server"></uc:MonControl>
    Par exemple si tu as Default.aspx et MonControl.ascx :

    Default.aspx
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <%@ Page Title="" Language="C#" MasterPageFile="~/default.master"    CodeBehind="Default.aspx.cs" Inherits="TestASP._Default" %>
    <%@ Register TagPrefix="uc" TagName="MonControl" Src="~/Controls/MonControl.ascx" %>
    <div>
    ...
    <%-- appel de ton control --%>
    <uc:MonControl ID="MonControl" runat="server"></uc:MonControl>
    ...
    </div>
    Après, tu peux mettre le code que tu veux dans ton control, par exemple ton repeater.

    MonControl.ascx
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <%@ Control Language="C#" AutoEventWireup="true" CodeBehind="MonControl.ascx.cs" Inherits="TestASP.MonControl" ClassName="MonControl" %>
    <asp:repeater.....>
    </asp:repeater>
    Le code que tu as mis dans ton UC sera donc utilisé dans la page ou tu l'as appelé.
    Ce qui te permet de fragmenter ton code et de centraliser les parties qui se répètent.

  3. #3
    Candidat au Club
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2011
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2011
    Messages : 7
    Points : 3
    Points
    3
    Par défaut
    A super réponse bien détaillé je vous remercie

    j'essaye tout cela

  4. #4
    Membre éclairé
    Inscrit en
    Septembre 2007
    Messages
    1 137
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 137
    Points : 707
    Points
    707
    Par défaut
    c'est l'equivalent du include en php

  5. #5
    Candidat au Club
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2011
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2011
    Messages : 7
    Points : 3
    Points
    3
    Par défaut
    yep c'est sa

    Par contre ma source de donnée est sur ma page "resultat.aspx" j'aimerais pourvoir la transmettre à ma page "UserControl.ascx" il s'agit d'une liste qui alimente mon repeater.

    Une idée?

    cordialement

  6. #6
    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 : 40
    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 102
    Points
    3 102
    Par défaut
    Dans ce cas, expose dans ton UserControl une propriété publique "DataSource".
    Dans le resultats.aspx.cs (ou .vb), à l'instanciation de ton userControl, tu peux alors faire : monUserControl.DataSource = maDataSource

    et, dans ton userControl, au moment du binding : monRepeater.DataSource = DataSource

  7. #7
    Candidat au Club
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2011
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2011
    Messages : 7
    Points : 3
    Points
    3
    Par défaut
    Auriez vous un éxemple...je débute et je vois un peu près ce qu'il faut faire...


    merci d'avance
    cordialement

  8. #8
    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 : 40
    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 102
    Points
    3 102
    Par défaut
    Alors, dans le code behind du userControl :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    private List<object> _datasource;
    public List<object> DataSource{
    get{
    _datasource = value;
    }
    set{
    return _datasource;
    }
    }
    Là où tu bind ton repeater
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    monRepeater.DataSource = DataSource
    Dans resultats.aspx, au chargement du UserControl :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    monUserControl.DataSource = une List<object>
    J'ai utilisé une List<object> car je ne sais pas avec quoi tu bind ton repeater, il faut donc que tu adaptes ce code en fonction du type d'objets utilisés.

  9. #9
    Candidat au Club
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2011
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2011
    Messages : 7
    Points : 3
    Points
    3
    Par défaut
    Merci beaucoup sa ma bien servi

    cordialement

  10. #10
    Nouveau membre du Club
    Femme Profil pro
    Inscrit en
    Septembre 2011
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations forums :
    Inscription : Septembre 2011
    Messages : 49
    Points : 30
    Points
    30
    Par défaut
    Citation Envoyé par demonia Voir le message
    Un usercontrol est un fichier .ascx qui contient du code et que tu appel depuis un autre code.

    Dans tes pages qui doivent l'intégrer, tu dois registrer ton control en haut de la page :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <%@ Register TagPrefix="uc" TagName="MonControl" Src="~/Controls/MonControl.ascx" %>
    et après, tu peux l'appeler dans le code ou tu veux :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <uc:MonControl ID="MonControl" runat="server"></uc:MonControl>
    Par exemple si tu as Default.aspx et MonControl.ascx :

    Default.aspx
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <%@ Page Title="" Language="C#" MasterPageFile="~/default.master"    CodeBehind="Default.aspx.cs" Inherits="TestASP._Default" %>
    <%@ Register TagPrefix="uc" TagName="MonControl" Src="~/Controls/MonControl.ascx" %>
    <div>
    ...
    <%-- appel de ton control --%>
    <uc:MonControl ID="MonControl" runat="server"></uc:MonControl>
    ...
    </div>
    Après, tu peux mettre le code que tu veux dans ton control, par exemple ton repeater.

    MonControl.ascx
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <%@ Control Language="C#" AutoEventWireup="true" CodeBehind="MonControl.ascx.cs" Inherits="TestASP.MonControl" ClassName="MonControl" %>
    <asp:repeater.....>
    </asp:repeater>
    Le code que tu as mis dans ton UC sera donc utilisé dans la page ou tu l'as appelé.
    Ce qui te permet de fragmenter ton code et de centraliser les parties qui se répètent.
    trés claire
    Réponse trés utile
    Merci!

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

Discussions similaires

  1. @OutPutCache UserControl Asp.Net
    Par sou_rif dans le forum ASP.NET
    Réponses: 1
    Dernier message: 25/01/2012, 11h48
  2. [ASP.NET] GetElementByID sur un UserControl
    Par Titi41 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 16/07/2008, 10h51
  3. Réponses: 6
    Dernier message: 30/07/2007, 17h17
  4. XMLRAD equivalent usercontrol ASp .NET
    Par le-roy_a dans le forum XMLRAD
    Réponses: 10
    Dernier message: 10/12/2004, 14h09

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