2011-10-28 3 views
0

Ce que je veux faire est de passer outre le contrôle des étiquettes et effectuer les opérations suivantes:Création de contrôle personnalisée en fonction des paramètres en C#

je définissais des paires clé/valeur dans un fichier XML personnalisé où j'aime chercher des valeurs de propriété Text des étiquettes Commandes et mes paramètres fichier xml ressemble celui-ci:

<label key="lblLabel1" value="Something"/> 

Lorsque je crée une nouvelle instance de mon étiquette personnalisée contrôle, je ne passera que ID et il trouvera la clé ID correspondante dans le fichier des paramètres et définissez le Text en fonction de ce qu'il trouve.

Et aussi, je définis mon contrôle personnalisé dans la source Voir aussi bien comme ci-dessous:

<ccontrol:CLabel ID="lblLabel1"/> 

Ici je changer seulement définir la propriété ID et le texte devrait provenir de fichier settings.xml.

Comment puis-je faire cela?

Répondre

1

Même si je suggère moi aussi d'utiliser des ressources, ce que vous demandez est assez facile à faire.

magasin d'abord vos paires de valeurs clés appsettings (Web.config) Lien: http://msdn.microsoft.com/en-us/library/610xe886.aspx

ensuite écrire un quelque chose de contrôle comme celui-ci (non testé):

using System; 
using System.Configuration; 
using System.Web; 
using System.Web.Configuration; 
using System.Web.UI; 
using System.Web.UI.WebControls; 

namespace Web 
{ 
    public class SpecialLabel : Label 
    { 
     protected override void OnLoad (EventArgs e) 
     { 
      base.OnLoad (e); 

      //get value from appsettings 
      if(!string.IsNullOrEmpty(this.ID)) { 
       Configuration rootWebConfig1 = WebConfigurationManager.OpenWebConfiguration(null); 
       if (rootWebConfig1.AppSettings.Settings.Count > 0) 
       { 
        KeyValueConfigurationElement customSetting = rootWebConfig1.AppSettings.Settings[this.ID]; 
        if (customSetting != null) 
         this.Text = customSetting.Value; 
       } 
      } 
     } 

    } 
} 
Questions connexes