Pregunta

Tengo una consulta Linq bastante complicada que parece que no puedo ingresar a un LinqDataSsource para usar en un 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();

¿Cómo puedo obtener esto en un GridView? ¡Gracias!

¿Fue útil?

Solución

Puede configurar su Gridview sin fuente de datos. Configure las columnas de la vista de cuadrícula y, en el código subyacente, enlace que resulte en la vista de cuadrícula.

Otros consejos

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

@leppie: no es necesario llamar a ToList () en IQueryable cuando se adjunta como fuente de datos.

Siempre que su DataContext no se haya eliminado antes de que el método DataBind se llame ToList es una llamada redundante.

Por defecto, un DataContext usa carga diferida, de modo que los datos solo se obtienen de la base de datos cuando se enumera IQueryable. ToList () realiza una enumeración y realiza la llamada, al igual que DataBind ().

Entonces puedes hacer algo como esto:

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

Dependiendo de cómo deseche su DataContext determina qué vincular a una fuente de datos.

Luego puede usar columnas generadas automáticamente en GridView, de modo que cada propiedad en su objeto devuelto se convierta en una columna, o puede escribir las columnas con el diseñador y configurar las reglas de enlace allí.

Puede enlazar IQueryable < > escriba a GridView usando el control LinqDataSource. http://johnsobrepena.blogspot.com/2010/ 01 / data-bind-coolgridview-to-iqueryable.html

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top