2010-02-16 3 views
1

Я хочу использовать jqgrid в моем простом приложении Asp.netjqGrid в простом приложении asp.net?

сейчас проблема, когда я пишу этот код.

public void GetGridData(string sidx, string sord, int page, int rows) 
    { 
     return Content(JsonHelper.JsonForJqgrid(GetDataTable(sidx, sord, page, rows), rows, GetTotalCount(), page), "application/json"); 
    } 

    public int GetTotalCount() 
    { 
     int totalCount = 0; 
     try 
     { 
      using (GuestPassEntities demoMvcEntities1 = new GuestPassEntities()) 
      { 

       totalCount = (from _product in demoMvcEntities1.GP_Register 
           select _product).Count(); 
      } 
     } 
     catch 
     { 
     } 
     return totalCount; 
    } 
    public DataTable GetDataTable(string sidx, string sord, int page, int pageSize) 
    { 
     List<GP_Register> AllProducts = null; 
     DataTable tab1 = new DataTable(); 
     using (GuestPassEntities demoMvcEntities1 = new GuestPassEntities()) 
     { 

      AllProducts = (from _product in demoMvcEntities1.GP_Register.AsEnumerable() 
          select _product).ToList(); 



      tab1.Columns.Add("title", Type.GetType("System.String")); 
      tab1.Columns.Add("desc", Type.GetType("System.String")); 
      tab1.Columns.Add("select", Type.GetType("System.String")); 

      foreach (GP_Register pnames in AllProducts) 
      { 
       DataRow dr = tab1.NewRow(); 
       dr["title"] = pnames.FullName.ToString(); 
       dr["desc"] = pnames.CompanyName.ToString(); 
       dr["select"] = pnames.EmployeeName.ToString(); 
       tab1.Rows.Add(dr); 
      } 
     } 
     return tab1; 
    } 

Как я могу вернуть contentresult.

Просьба предложить мне какие-либо ответы

Благодарности Ritz

ответ

0

Я бы не стал использовать DataTable в качестве ответа, установленного на всех .. Вы можете сериализовать список, где T является объектом [] ...

с помощью Linq, вы можете сделать

...Select(item => new object[] { 
    item.field1, 
    item.field2, 
    ... 
    });

Если вы используете по умолчанию с JsonResult (предполагая, что вы делаете ASP.Net MVC здесь), вы можете сделать

return JsonResult(new { 
     total: totalRows 
     ... 
     rows: resultFromLinq /* .Select(new object[] {....}) */ 
    })

Вы можете связать основной запрос в sproc, или делать linq2sql или организации, NHibernate и т.д. ... Однако вы хотите. Выполнение результатов из DataTable в JSON напрямую не сериализуется. Выбор объекта [] {} literal в качестве последней строки приведет к сериализованному массиву массивов.

{ 
    "total": 3, 
    ... 
    rows: [ 
    ["val1", "val2", 3, ...] 
    ], 
    ... 
}

Я бы также посмотреть на Phil Haack's post on jqGrid

1

Если у вас есть бюджет и может платить за компоненты, лучшая идея состоит в том, чтобы использовать коммерческие компоненты Trirand (одни и те же люди, стоящие за jqGrid стороне клиента) корабля

http://www.trirand.net/demo.aspx

Смежные вопросы