【发布时间】:2013-12-19 13:17:06
【问题描述】:
我正在尝试在我的 jqgrid 中进行分页。 这是我的代码:
<div>
<table id="JQGridDemo"></table>
<div id="jqFooter" style="text-align:center;"></div>
</div>
<script type="text/javascript" language="javascript">
$(document).ready(function () {
$('#JQGridDemo').jqGrid({
url: '@Url.Action("JQGrid")',
datatype: "json",
mtype: "post",
colNames: ['ID', 'Name', 'Model', 'Cost', 'Date'],
colModel: [{
name: 'ID',
index: 'ID'
}, {
name: 'Name',
index: 'Name'
}, {
name: 'Model',
index: 'Model'
}, {
name: 'Cost',
index: 'Cost'
}, {
name: 'Date',
width: '464px',
index: 'Date'
}],
height: '100%',
autowidth: true,
shrinkToFit: false,
pager: "#jqFooter",
rowNum: 10,
sortName: 'Name',
viewRecords: true,
sortorder: "asc",
loadonce: true,
jsonReader: {
root: "rows",
page: "page",
total: "total",
records: "records",
repeatitems: false,
cell: "cell",
id: "ID",
userdata: "userdata"
}
});
});
</script>
我的控制器代码是
public JsonResult JQGrid() {
AssignmentEntities entities = new AssignmentEntities();
var gridDetail = (from list in entities.Brands select list).ToList();
var jsonData = new {
total = 6, page = page, records = gridDetail.Count, rows = gridDetail
};
return Json(jsonData, JsonRequestBehavior.AllowGet);
}
谁能告诉我为什么分页对我不起作用??
【问题讨论】:
-
我在代码中看不到任何明显的错误。可以改进它,但分页应该可以工作。您在“分页不起作用”下的确切含义是什么?你退货多少件?是否超过 10 个(参见
rowNum)?寻呼机中的“下一页”(“>”)按钮是否启用?您点击它时是否有任何错误消息? -
我有 6 条记录。我将 rownum 更改为 5。前 5 条记录显示在第 1 页中。当我单击“下一页”按钮时,它不会转到下一页。
-
你应该告诉我的控制器代码是否正确(var jsonData = new { total = 6, page = page, records = gridDetail.Count, rows = gridDetail)
-
如果您使用
loadonce: true,那么total、page和records将被忽略。您可以直接使用return Json((from list in entities.Brands select list).ToList(), JsonRequestBehavior.AllowGet);。如果您使用从服务器返回的 JSON 响应附加您的问题,则可以重现您描述的问题。您可以使用Fiddler 或开发者工具(如果是 IE(按 F12 开始))获得准确的服务器响应。 -
是的,你是正确的..我添加了 loadonce:true..现在它可以工作了。
标签: jquery asp.net-mvc jqgrid pagination