2010-03-19 45 views

回答

1

试图通过一个IQueryable对象(LINQ NHibernate的)到Telerik的网格,在此情况下,它会做寻呼/自动分拣(无需进行编码)。

1

我真的不知道你的标准最少的编码不过是在Telerik的网站,你只要是一个相当冗长例如:

public partial class GridController : Controller 
{ 
    public ActionResult FirstLook(bool? ajax, bool? scrolling, bool? paging, bool? filtering, bool? sorting, bool? grouping, bool? showFooter) 
    { 
     ViewData["ajax"] = ajax ?? true; 
     ViewData["scrolling"] = scrolling ?? true; 
     ViewData["paging"] = paging ?? true; 
     ViewData["filtering"] = filtering ?? true; 
     ViewData["grouping"] = grouping ?? true; 
     ViewData["sorting"] = sorting ?? true; 
     ViewData["showFooter"] = showFooter ?? true; 

     return View(GetOrderDto()); 
    } 

    [GridAction] 
    public ActionResult _FirstLook() 
    { 
     return View(new GridModel(GetOrderDto())); 
    } 
} 

因此,所有你需要做的就是实现这个GetOrderDto方法(顺便说一句,应该放在某个存储库中,而不是控制器逻辑的一部分),在这个存储库中你可以使用你现有的NHibernate数据访问。

+0

所有你所解释的是我已经完成的。然而,GetOrderDto()读取数据库中的所有订单,并返回IEnumerable的将由Telerik的网格将用于渲染正确的页面。我想从数据库中仅使用NHibernate数据访问来检索所需的页面。 – 2010-03-19 22:24:50

+0

当您点击页码时,网格将此号码发送到控制器操作。一旦你的当前页和行数,你想每页显示的,你可以使用'SetFirstResult'和'SetMaxResult'您NHibernate的查询分页结果集(http://stackoverflow.com/questions/54754/如何灿你办寻呼与 - NHibernate的)。 – 2010-03-19 22:33:37