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 :

Control Web Personnalisé


Sujet :

ASP.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    331
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 331
    Par défaut Control Web Personnalisé
    Bonjour,

    j'aimerai créer un control web personnalisé qui fonctionnerait comme les controles de connection (exemple : SqlConnection, OdbcConnection), et qui s'afficherait donc en bas de la page, quand on est en mode design.

    Quelqu'un pourrait-il me dire comment dois-je procéder ?

    Merci d'avance

    PS : je travaille en .Net 1.1

  2. #2
    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
    il suffit de faire une classe qui hérite de System.ComponentModel.Component

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    331
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 331
    Par défaut
    génial
    Merci

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    331
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 331
    Par défaut
    Bonjour,

    Un autre petite question :
    Comment faire pour ajouter une propriété qui permet de rechercher des fichiers sur le répertoire virtuel du site web ? (comme pour le control Xml et sa propriété DocumentSource) ?

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    331
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 331
    Par défaut
    Vous n'auriez pas une doc sur System.ComponentModel.Component?

    Mon objectif est de gérer le multilangue dans une application avec :
    - un custom control (que je nomme Connector) qui me permet de me pluguer à un fichier XML comprenant les différentes traductions pour un objet. Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <?xml version="1.0" encoding="iso-8859-1" ?> 
    <object id="Label1">
    	<text lang="Fr"><![CDATA[<b><u>Mon Text en html</u></b>]]></text>
    	<text lang="En"><![CDATA[<b><u>My html text</u></b>]]></text>
    </object>
    - Un custom control (que j'appelle Label) qui prend pour source un Connector

    Pour l'instant, côté Connector j'ai :

    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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    	[DefaultProperty("Text"), 
    	ToolboxData("<{0}:Connector runat=server ID=0></{0}:Connector>")]
    	public class Connector : System.ComponentModel.Component
    	{
    		private string _id = string.Empty;
     
    		private string _lang = "Fr";
    		private XmlDocument _source;
    		private string _sourceFileName = string.Empty;
     
    		/// <summary>
    		/// 
    		/// </summary>
    		public Connector()
    		{
    			this._source = new XmlDocument();
    		}
     
    		[
    		Bindable(false),
    		Category("Divers"),
    		DefaultValue(""),
    		Description("ID de l'élément")
    		]
    		public string ID
    		{
    			get   {	return this._id; }
    			set   {	this._id = value; }
    		}
     
     
    		/// <summary>
    		/// 
    		/// </summary>
    		[Bindable(true), 
    		Category("Connection"), 
    		DefaultValue(true)] 
    		public string Lang 
    		{
    			get
    			{
    				return this._lang;
    			}
     
    			set
    			{
    				this._lang = value;
    			}
    		}
     
     
    		/// <summary>
    		/// 
    		/// </summary>
    		[Bindable(true), 
    		Category("Connection"), 
    		DefaultValue(false)] 
    		public string Source 
    		{
    			get
    			{
    				return this._sourceFileName;
    			}
     
    			set
    			{
    				this._sourceFileName = value;
    				this._source.Load(this._sourceFileName);
    			}
    		}
     
    		/// <summary>
    		/// 
    		/// </summary>
    		/// <param name="nameObject"></param>
    		/// <returns></returns>
    		internal string GetValue(string nameObject)
    		{
    			XmlNode obj = this._source.SelectSingleNode("//object[@id='" + nameObject + "']/text[@lang='" + this._lang + "']");
    			if(obj != null)
    				return obj.InnerText;
    			else
    				return string.Empty;
    		}
     
     
    	}
    Et côté Label :

    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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    	/// <summary>
    	/// Description résumée de Label.
    	/// </summary>
    	[DefaultProperty("Text"), 
    	ToolboxData("<{0}:Label runat=server></{0}:Label>")]
    	public class Label : System.Web.UI.WebControls.Label
    	{
    		private Connector _source;
     
    		[Bindable(true), 
    		Category("DataSource"), 
    		DefaultValue("")] 
    		public Connector Source
    		{
    			get
    			{
    				return this._source;
    			}
    			set
    			{
    				this._source = value;
    			}
    		}
     
    		/// <summary> 
    		/// Génère ce contrôle dans le paramètre de sortie spécifié.
    		/// </summary>
    		/// <param name="output"> Le writer HTML vers lequel écrire </param>
    		protected override void Render(HtmlTextWriter output)
    		{
    			output.Write(this._source.GetValue(this.ID));
    		}
    	}
    Côté ASPX, ça me donne cela :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    </CC1:CONNECTOR>
    <cc1:Label id="Label1" runat="server" Source="connector3"></cc1:Label>
    Donc j'aimerai pouvoir :
    - ajouter une boite de dialogue à la propriété Source du Connector,
    - que les propriétés du Connector soient visible dans le ASPX (comme pour le Label)... hors là j'ai juste un </CC1:CONNECTOR> (les propriétés se mettent dans le code behind... c'est pénible :p)
    - Pouvoir mettre à jour automatiquement tous les éléments connectés à mon Connector (en cas de changement de fichier source par exemple)

    Pour tout ça, j'ai besoin d'un gros coup de main ;-)

    Si quelqu'un a déjà fait un truc de similaire, ça m'intéresse

  6. #6
    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
    Vous n'auriez pas une doc sur System.ComponentModel.Component?
    Ben comme pour toutes les classes du framework... MSDN !
    http://msdn.microsoft.com/fr-fr/libr...component.aspx

    - ajouter une boite de dialogue à la propriété Source du Connector,
    pour sélectionner un fichier je suppose ? tu peux fouiller dans les éditeurs prédéfinis qui héritent de UITypeEditor
    http://msdn.microsoft.com/fr-fr/libr...ner_cpe50437_h
    Pour spécifier quel éditeur utiliser, mets un attribut EditorAttribute avec le nom de classe de l'éditeur

    pour le reste, je sais pas trop...

Discussions similaires

  1. Réponses: 4
    Dernier message: 04/12/2009, 18h00
  2. Réponses: 5
    Dernier message: 17/10/2007, 16h55
  3. Réponses: 1
    Dernier message: 10/10/2007, 12h52
  4. LIRC et control web
    Par usf70 dans le forum Shell et commandes GNU
    Réponses: 2
    Dernier message: 24/04/2007, 23h18
  5. Utilisation du control web Browser
    Par JACQUEY dans le forum VB 6 et antérieur
    Réponses: 18
    Dernier message: 17/02/2007, 08h36

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