25 votes

Comment puis-je lier un ASP.NET FormView à un seul enregistrement?

Le but de l'ASP.NET contrôle FormView est pour afficher un seul enregistrement à la fois. Alors, comment puis-je lier à un seul enregistrement? Il se plaint de ce que

Source de données est un type non valide. Il doit être un IListSource, IEnumerable ou IDataSource.

Je peux envelopper mon objet dans une liste si c'est la seule solution. Dans cette application, la FormView est à l'intérieur d'un contrôle par l'utilisateur et je suis à la récupération de l'objet dans une méthode publique, c'est à dire que je ne suis pas à l'aide d'un contrôle de source de données. Je ne suis pas le faire toutes les 2 voies de liaison de données de plus ici, je suis le seul à l'aide de la FormView dans ce cas, pour conserver un aspect cohérent.

Si je suis allé par le livre et lié à un FormView à une source de données qui a retourné une liste d'enregistrements, serait-il en fait de récupérer tous les enregistrements et juste afficher uniquement les enregistrements sélectionnés?

Voici ce que j'ai fini par mettre en place dans une classe utilitaire:

public static IEnumerable<T> WrapInEnumerable<T>(T item)
{
    return new T[] {item};
}

19voto

Sani Huttunen Points 10433

Comme le message d'erreur dit, l'objet source de données doit mettre en œuvre IListSource, IEnumerable ou IDataSource de travail.

Si vous avez un objet av de type A, qui ne mettent pas en œuvre l'une des interfaces mentionnées, alors vous pourriez aussi vous dire l'enveloppe de votre objet dans une liste:

C#

var myDataSource = new List<A> {myObject};

VB.NET

Dim myDataSource As List(Of A)(myObject)

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