如上图,无论多少条数据,总页数只显示一页,导致无法进行翻页,经过搜索及调试发现后台数据总页数正确,但是没有返回前端,导致不能正常显示总页面,无法翻页。
解决方法:
1. 前端js:(列表渲染+按日期及关键字搜索+分页显示)
function gridList() {
var $gridList = $("#gridList");
$gridList.dataGrid({
url: "/FileManage/FileListTable/GetGridJson",
height: $(window).height() - 128,
colModel: [
{ label: '主键', name: 'F_Id', hidden: true },
{ label: '上传人', name: 'F_UseName', width: 100, align: 'left' },
{ label: '文件名', name: 'F_FileName', width: 300, align: 'left' },
{ label: '文件类型', name: 'F_Type', width: 100, align: 'left' },
{ label: '上传日期', name: 'F_Date', width: 130, align: 'left' },
{
label: "操作", name: "F_Description", index: "F_Description", width: 100, align: "center", sortable: false,
formatter: function (value, row, index) {
return '<a download href="javascript:download(\'' + index.F_Id + '\')">下载</a> <a href="javascript:onlineview(\'' + index.F_Id + '\')">预览</a>';
}
},
],
pager: "#gridPager",
sortname: 'F_Date desc',
viewrecords: true,
});
$("#btn_search").click(function () {
var queryJson = {
keyword: $("#txt_keyword").val(),
startDate: $("#Start_Date").val(),
endDate: $("#End_Date").val(),
//itemId: $("#itemTree").getCurrentNode().id,
}
console.log(queryJson)
$gridList.jqGrid('setGridParam', {
postData: { itemId: $("#itemTree").getCurrentNode().id,queryJson:JSON.stringify(queryJson) },
}).trigger('reloadGrid');
});
}
2. Controller代码:
public ActionResult GetGridJson(string itemId, Pagination pagination, string queryJson)
{
//var data = fileListTableApp.getListJson(itemId,pagination, queryJson);
var data = new
{
rows = fileListTableApp.getListJson(pagination, itemId, queryJson),//数据
total = pagination.total,//总页数
page = pagination.page,//当前页数
records = pagination.records//数据总条数
};
return Content(data.ToJson());
}
2. Application代码:
public List<FileListTableEntity> getListJson(Pagination pagination, string itemId, string queryJson)
{
var expression = ExtLinq.True<FileListTableEntity>();
if (!string.IsNullOrEmpty(itemId))
{
expression = expression.And(t => t.F_ItemId == itemId);
}
var queryParam = queryJson.ToJObject();
// var data= service.IQueryable(expression).OrderBy(t => t.F_Id).ToList();
if (!queryParam["keyword"].IsEmpty())
{//按输入的keyword进行搜索
string keyword = queryParam["keyword"].ToString();
expression = expression.And(t => t.F_UseName.Trim().Contains(keyword.Trim()));
expression = expression.Or(t => t.F_FileName.Trim().Contains(keyword.Trim()));
expression = expression.Or(t => t.F_Type.Trim().Contains(keyword.Trim()));
}
if (!queryParam["startDate"].IsEmpty()) {
string StartDate = queryParam["startDate"].ToString();
DateTime StartTime = Convert.ToDateTime(StartDate);
expression = expression.And(t => t.F_Date > StartTime);
}
if (!queryParam["endDate"].IsEmpty()) {
string EndDate = queryParam["endDate"].ToString();
DateTime EndTime = Convert.ToDateTime(EndDate);
expression = expression.And(t => t.F_Date < EndTime);
}
//foreach (var item in data)
//{
// item.F_Start=item.F_Start.ToDateString().ToDate();
// item.F_End=item.F_End.ToDateString().ToDate();
//}
pagination.sord = "desc";
pagination.sidx = "F_UseName,F_FileName,F_GongXv";
return service.FindList(expression, pagination).OrderByDescending(t => t.F_Date).ToList();//按日期排序
//return service.FindList(expression, pagination);
}