我有一个非常复杂的Linq查询,我似乎无法进入LinqDataSsource以在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();

如何将其添加到GridView中?谢谢!

有帮助吗?

解决方案

您可以设置没有数据源的Gridview。设置gridview列,并在codebehind中将结果绑定到网格视图。

其他提示

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

@leppie - 将IQueryable作为数据源附加时,无需在IQueryable上调用ToList()。

如果在调用DataBind方法之前未处理DataContext,则ToList是冗余调用。

默认情况下,DataContext使用延迟加载,因此只有在枚举IQueryable时才从数据库中获取数据。 ToList()执行Enumeration并执行调用,DataBind()也是如此。

所以你可以这样做:

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

取决于您处理DataContext如何确定绑定到数据源的内容。

然后,您可以在GridView上使用自动生成的列,以便将返回对象中的每个属性转换为列,或者您可以使用设计器编写列并在那里设置绑定规则。

您可以绑定IQueryable <!> lt; <!> gt;使用LinqDataSource控件键入GridView。 http://johnsobrepena.blogspot.com/2010/ 01 /数据绑定-coolgridview到iqueryable.html

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top