从具有多个联接的查询加载jqgrid

时间:2009-09-12 22:08:45

标签: dynamic sorting jqgrid iqueryable

我正在尝试从一个带有多个连接的查询中加载一个可排序的jqgrid 3.5并且因为我是Linq和jqgrid的新手而遇到很多困难。为了允许排序,我首先尝试使用动态SQL加载它。

因为我从多个表中提取列,所以我假设我的返回将是一个类对象,我将填充(或者它将是一个表)。在使用带有多个.JOIN子句的动态SQL时,如何返回IQueryable自定义类对象。如果这是不可能的,我如何从存储过程调用返回IQueryable数据。在存储过程中创建动态SQL很容易 - 但我不确定如何使用它加载我的网格。

对不起,如果到处都是,但我似乎无法找到办法。如果你可以推荐最直接的方式从一个有多个连接的查询加载我的可排序网格,我非常感激。

我的控制器代码:

 public ActionResult GridData(string sidx, string sord, int page, int rows)
 {
        EquipTrak eqt = new EquipTrak();

        var equipment = eqt.GetGridEquipment(sidx, sord);

        var dataJson = new
        {

            total = 10000,
            page = 1,
            records = 10000,
            rows = (from e in equipment
                    select new
                    {
                        equip_id = e.equip_id,
                        cell = new string[] {
                e.equip_id,
                e.equipType,
                e.makeType,
                String.Format("{0:MM/dd/yyyy}", e.serv_due_dt)
            }
                    }).ToArray()
        };
        return Json(dataJson);
    }
}

我的班级代码(不完整):

namespace ULS_Site.Models
{
  public class EquipTrak
  {
    uls_dbDataContext ulsDB = new uls_dbDataContext();

    public IQueryable<equipmentCls> GetGridEquipment(string sidx, string sord)
    {
        try
        {
            return

1 个答案:

答案 0 :(得分:0)

不确定这是最佳还是最差的解决方案,但我使用SQL Server视图来处理所需的所有连接。然后,我可以使用.Orderby和.Where来反对我的数据上下文中的视图。