jqGrid в простом приложении asp.net? - PullRequest
1 голос
/ 16 февраля 2010

я хочу использовать jqgrid в моем простом приложении 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

Ответы [ 3 ]

1 голос
/ 16 февраля 2010

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

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

0 голосов
/ 19 февраля 2010

Даже если вы не используете ASP.NET MVC, возможно, будет полезна следующая статья:

Использование панели инструментов поиска jqGrid с несколькими фильтрами в ASP.NET MVC

0 голосов
/ 16 февраля 2010

Я бы вообще не использовал DataTable в качестве набора ответов. Вы можете сериализовать List, где 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 напрямую не сериализуется хорошо. Выбор литерала объекта [] {} в качестве последней строки приведет к сериализованному массиву массивов.

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

Я бы тоже взглянул на пост Фила Хаака на jqGrid

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...