2016-09-27 1 views
0

Я просто пытаюсь отобразить очень простой JQGrid с данными из вызова ajax на контроллер. Все, что я вижу, это заголовки сетки, никаких данных. Может кто-нибудь, пожалуйста, помогите мне выяснить, что я делаю неправильно? Заранее спасибо!Сопоставление данных с JQGrid с вызовом Ajax

Вот вызов Ajax и настройка JQGrid ..

$("#grid").jqGrid({ 
      url: '@Url.Action("GetLoanReport", "Report")', 
      datatype: "json", 
      height: "auto", 
      colNames: ['Name', 'Random Stuff'], 
      colModel: [ 
       { name: 'Name', index: 'Name', width: 150, sortable: true }, 
       { name: 'RandomStuff', index: 'RandomStuff', width: 500, sortable: false } 
      ], 
      jsonReader: { 
       repeatitems: true, 
       root: 'rowdata', 
       page: 'currpage', 
       total: 'totalpages', 
       records: 'totalrecords' 
      }, 
      rowNum: 10, 
      rowList: [5, 10, 30], 
      rownumbers: false, 
      gridview: true, 
      loadonce: true, 
      pager: "#page", 
      caption: "Flat Data Example" 
     }); 

Вот код контроллера ...

Function GetLoanReport() As JsonResult 
    ViewData("Ribbon") = "partials/_statsRibbon" 

    Dim response As New Response 
    Dim model As New ReportModel 

    model.Name = "Mark" 
    model.RandomStuff = "Highfield" 

    response.currpage = 1 
    response.totalpages = 1 
    response.totalrecords = 1 
    response.rowdata = model 


    Return Json(response, JsonRequestBehavior.AllowGet) 
End Function 
+1

Вы хотите реализовать ** подстраницу на стороне сервера ** данных, которые вы хотите вернуть все данные из 'GetLoanReport', а jqGrid должен делать * локальный поиск подкачки, сортировку и фильтрацию/сортировку данных? В любом случае 'rowdata' должен быть ** array ** элементов (массив объектов) вместо одного ** объекта ** только с свойствами' Name' и 'RandomStuff'. Извините, я забыл синтаксис VB. Какую версию jqGrid вы используете (можете использовать) и из которой вилка jqGrid ([free jqGrid] (https://github.com/free-jqgrid/jqGrid), коммерческая [Guriddo jqGrid JS] (http: // guriddo. net /? page_id = 103334) или старый jqGrid в версии <= 4.7) – Oleg

+0

, вот и все. Как расстраивает, ха-ха. Я устанавливал rowdata для объекта, а не для списка объектов. Когда я сменил его на список объектов, он работал отлично. Благодаря! –

+0

Добро пожаловать! Я бы хотел, чтобы я мог вам помочь. Я отправил ту же информацию, что и ответ, который вы можете принять и «закрыть» вопрос. – Oleg

ответ

1

Основная проблема: rowdata должна быть массив элементов (массив объектов) вместо один объект только с Name и RandomStuff недвижимость.

Кроме того, вы должны решить, вы реализуете ли стороны сервера подкачки данных, или вы хотите, чтобы вернуть всем данных, из GetLoanReport сразу и jqGrid должно местных подкачки, сортировка и фильтрация/сортировке данных? В этом случае вы должны использовать опцию loadonce: true. Кроме того, важно выбрать вилку jqGrid, которую вы используете: free jqGrid, коммерческий Guriddo jqGrid JS или старый jqGrid в версии < = 4.7. Я разрабатываю бесплатную вилку jqGrid, которую я могу вам порекомендовать. Если вы его используете, я бы рекомендовал вам добавить forceClientSorting: true вариант дополнительно к loadonce: true. Он позволит вам использовать параметры sortname и sortorder для сортировки данных, возвращаемых с сервера до будет отображаться.

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

  • Нет связанных вопросов^_^