0 votes

Contrôle de zone de texte personnalisé en asp.net

J'essaie de créer une zone de texte personnalisée avec une propriété de type enum (comme textmode). Les valeurs de l'enum proviendront de la base de données. Mais les enums ne peuvent pas être dynamiques, y a-t-il une autre solution ?

0voto

Darin Dimitrov Points 528142

Le plus proche serait une propriété entière.

0voto

Matt Dearing Points 2889

Les Enums sont des constantes de compilation. Si les valeurs de la base de données ne changent pas au moment de l'exécution, vous pouvez toujours utiliser un outil de codage pour générer les valeurs des enums à partir de la base de données (au moment de la précompilation). Si elles sont amenées à changer, vous devrez peut-être utiliser une propriété de type String ou quelque chose de similaire, au lieu de l'Enum.

0voto

Mehdi Golchin Points 5578

Vous devez écrire un texte personnalisé TypeConverter pour accomplir cette tâche.

public class MyItemsConverter : TypeConverter
{

    public override StandardValuesCollection GetStandardValues(ITypeDescriptorContext context)
    {
        StringCollection values = new StringCollection();

        // Connect to database and read values.

        return new StandardValuesCollection(values);
    }

    public override bool GetStandardValuesSupported(ITypeDescriptorContext context)
    {
        return (context != null);
    }

    public override bool GetStandardValuesExclusive(ITypeDescriptorContext context)
    {
        return true;
    }

}

public class MyControl : WebControl
{

    [TypeConverter(typeof(MyItemsConverter))]
    public string MyItem { get; set; }

}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X