2012-11-06 91 views
0

我在MVC3工作和使用的jqGrid 4.4.1,我是新来的jqGrid所以这是基本的问题。jqGrid的导航不响应

我已经成功歌厅数据网格,并显示第一个站点。但是当我点击下一页时,我没有得到任何回应。

var myMeasurementsGrid = $("#gridMeasurementsTableView" + randomId); 

myMeasurementsGrid.jqGrid({ 
     url: '/DataMonitor/CreateMeasurementTableView/', 
     datatype: "json", 
     mtype: 'POST', 
     postData: { "mrpId": dataToSend.mrpId, "chartId": dataToSend.chartId, "mrpStartTime": dataToSend.mrpFilter.FilterTimeWindow.StartTimeStamp, "mrpEndTime": dataToSend.mrpFilter.FilterTimeWindow.EndTimestamp }, 
     jsonReader : { 
      root: "data", 
      page: "Page", 
      total: "total", 
      records: "records", 
      repeatitems: false, 
      cell: "cell", 
      id: "id" 
      }, 
     colNames: ['Date', 'Value'], 
     colModel: [ 
      { name: 'Timestamp', index: 'Timestamp', width: 260, 
       formatter: function (cellvalue, options, rowObject) { 
         return new Date(parseInt(cellvalue.substr(6, cellvalue.length - 8), 10)); 
        } 
      }, 
      { name: 'Value', index: 'Value', width: 160, align: 'center' } 
     ], 
     loadui: "disable", 
     loadtext: "Loading", 
     viewrecords: true, 
     gridview: true, 
     rowNum: 10, 
     height: "100%", 
     caption: "Measurements2", 
     pager: $("#gridpager" + randomId), 
     loadonce: true, 
     sortname: 'Timestamp', 
     sortorder: "asc", 
     rowList: [10, 50, 100] 
    }); 

功能的背后是:

 [HttpPost] 
     public ActionResult CreateMeasurementTableView(string sidx, string sord, int page, int rows, int mrpId, string divId, string chartId, DateTime mrpStartTime, DateTime mrpEndTime) 
     { 
... here is my code, for getting data 

return Json(new 
      { 
       total = listaAvailableMeasurements.Count(), 
       records = listaAvailableMeasurements.Count(), 
       data = listaAvailableMeasurements, 
       Page = page, 
       SortColumn = sidx, 
       SortOrder = sord 
      }); 

没有任何人有一个想法,为什么不响应导航?

BR, 扬

回答

0

也许你从服务器(CreateMeasurementTableView)仅在第一页返回。如果您使用loadonce: true,则应返回所有数据。在使用情况下loadonce: true jqGrid在第一次加载数据后将datatype更改为"local"。所以它将不再与服务器进行通信,分页和过滤(搜索)将由jqGrid在内部实现。

如果你还没有在网格这么多排它可能是很好的方式,但你必须在一个返回的所有数据。数据应该正确排序。如果要在服务器端上执行排序,分页和筛选,则必须删除loadonce: true选项。

+0

是,CreateMeasurementTableView从服务器(CCA 10000行)返回我的所有数据,这需要我可以改变,以获得尽可能多的行。 - 如果我设置的数据类型为“本地”,我不从服务器获取数据。 - 如果我将数据类型设置为“local”并删除loadonce:true,我只得到前10行。而导航仍然不会发生。 – Jan

+0

我解决了这个问题。 – Jan

+0

@ user1802491:你是如何解决它的?有什么问题?你只是删除'loadonce:true'或者你有另一个问题? stackoverflow的目标是*共享*常见问题,其解决方案* other *。 – Oleg