我在MVC3中工作并使用jqGrid 4.4.1,我是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 :(得分:0)
可能您只是从服务器(CreateMeasurementTableView
)返回第一页。如果您使用loadonce: true
,则应返回所有数据。如果使用loadonce: true
,jqGrid会在首次加载数据后将datatype
更改为"local"
。因此,它将不再与服务器进行通信,并且jqGrid将在内部实现分页,排序和过滤(搜索)。
如果网格中没有这么多行,那么这可能是好方法,但你必须在一个网站上返回所有数据。数据应该正确排序。如果要在服务器端实现排序,分页和过滤 ,则必须删除loadonce: true
选项。