jgGrid не показывает данные с использованием asp.Net MVC 3.0 - PullRequest
1 голос
/ 13 мая 2011

У меня проблема с отображением данных json, возвращаемых из моего представления в jgGrid 4.0 в главном разделе у меня

<script src="/Scripts/jquery-1.5.2.min.js" type="text/javascript"></script>
<script src="/Scripts/modernizr-1.7.min.js" type="text/javascript"></script>

    <script src="/Scripts/jquery.lazyload.min.js" type="text/javascript"></script>
<script src="/Scripts/global.js" type="text/javascript"></script>

  <script src="/Scripts/jquery-ui-1.8.11.min.js" type="text/javascript"></script>

корпус

$ (документ) .ready (function () {

    jQuery("#grid").jqGrid({
        url: '@Url.Action("getusers", "dashboard",new {area="Security"})',
        datatype: "json",

        mtype: "GET",
        colNames: ['Id', 'UserName'],

        colModel: [
        { name: 'Id', index: 'Id',width: 200, align: 'left'},
        { name: 'UserName', index: 'UserName', width: 200, align: 'right' }

        ],
        rowList: null,        
        pgbuttons: false,     
        pgtext: null,        
        viewrecords: false,

      page:false,
        caption: "Users"
    });
    });

здесь код действия, возвращающий json

public JsonResult GetUsers()
        {
            var repo = ObjectFactory.GetInstance<IRepository<User>>();
            var result = (from x in repo.Query(x => x.ApplicationName == "DBM") select new {Id=x.Id, UserName=x.UserName}).ToArray();
            return this.Json(result, JsonRequestBehavior.AllowGet);
        }
    }

Я тестировал как в Firefox, так и в IE 9, сетка отображается пустой, ошибок в firebug нет, и данные выглядят нормально. любые советы будут оценены.

1 Ответ

3 голосов
/ 13 мая 2011

jqGrid требует специального формата json:

попробуйте это

 var jsonData = new
     {
         total = (rowcount + paging.Size - 1) / paging.Size
         page = paging.Page,
         records = rowcount,
         rows = (
                 from x in repo.Query(x => x.ApplicationName == "DBM")
                 select new 
                 {
                    id=x.Id,
                    cell = new string[]
                    {
                      // the order of the columns here must match 
                      x.Id, 
                      x.UserName
                    }
                })
     };

     return Json(jsonData, JsonRequestBehavior.AllowGet);

См. с использованием сетки jquery с asp.net mvc

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