Question

J'ai une requête Linq assez compliquée que je n'arrive pas à obtenir dans LinqDataSsource pour une utilisation dans GridView:

IEnumerable<ticket> tikPart = (
    from p in db.comments where 
        p.submitter == me.id && 
        p.ticket.closed == DateTime.Parse("1/1/2001") && 
        p.ticket.originating_group != me.sub_unit 
    select p.ticket
    ).Distinct();

Comment puis-je obtenir cela dans un GridView? Merci!

Était-ce utile?

La solution

Vous pouvez configurer votre Gridview sans source de données. Configurez les colonnes gridview et, dans codebehind, associez ce résultat à la vue grille.

Autres conseils

gridview.DataSource = tikPart.ToList();
gridview.DataBind();

@leppie - Il n'est pas nécessaire d'appeler un ToList () sur IQueryable lors de l'attachement en tant que source de données.

Si votre DataContext n'a pas été supprimé avant que la méthode DataBind appelée, ToList soit un appel redondant.

Par défaut, un DataContext utilise le chargement paresseux, de sorte que les données ne sont extraites de la base de données que lorsque IQueryable est Enumerated. ToList () effectue une énumération et effectue l'appel, tout comme DataBind ().

Vous pouvez donc faire quelque chose comme ceci:

using(MyDataContext ctx = new MyDataContext(){
  this.MyGridView.DataSource = from something in ctx.Somethings where something.SomeProperty == someValue select something;
  this.MyGridView.DataBind();
}

En fonction de la manière dont vous disposez de votre DataContext, déterminez ce qu'il faut lier à une source de données.

Vous pouvez ensuite utiliser des colonnes générées automatiquement dans GridView, de sorte que chaque propriété de votre objet renvoyé soit transformé en colonne, ou vous pouvez écrire les colonnes avec le concepteur et y définir les règles de liaison.

Vous pouvez lier IQueryable < > tapez GridView en utilisant le contrôle LinqDataSource. http://johnsobrepena.blogspot.com/2010/ 01 / data-bind-coolgridview-to-iqueryable.html

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top