jqGrid 解决分页跳转无效问题

如上图,无论多少条数据,总页数只显示一页,导致无法进行翻页,经过搜索及调试发现后台数据总页数正确,但是没有返回前端,导致不能正常显示总页面,无法翻页。

解决方法:

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);
        }

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
<head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>Insert title here</title> <link type="text/css" rel="stylesheet" href="css/jquery-ui-1.9.2.custom.min.css"> <link type="text/css" rel="stylesheet" href="css/ui.jqgrid.css"> <link rel="stylesheet" type="text/css" media="screen" href="css/ui.multiselect.css"> <script type="text/javascript" src="js/jquery-1.11.0.min.js" ></script> <script type="text/javascript" src="js/jquery-ui-1.9.2.custom.min.js"></script> <script type="text/javascript" src="js/jquery.layout-1.2.0.js"></script> <script type="text/javascript" src="js/i18n/grid.locale-cn.js"></script> <script type="text/javascript" src="js/jquery.jqGrid.min.js"></script> <script type="text/javascript" src="js/jquery.tablednd.js"></script> <script type="text/javascript" src="js/jquery.contextmenu.js"></script> <script type="text/javascript" src="js/ui.multiselect.js"></script> <script type="text/javascript"> $(document).ready(function(){ $("#list").jqGrid({ url:"happyEvent/jsonlist", datatype: "json", height: "auto", width:"auto", colNames:['id','时间', '用户名', '标题','内容'], colModel:[ {name:'id',index:'id', width:60, sorttype:"int"}, {name:'time',index:'time', width:90, sorttype:"date"}, {name:'name',index:'name', width:100}, {name:'title',index:'title', width:300, align:"left",sorttype:"float"}, {name:'content',index:'content', width:80, align:"left",sorttype:"float"} ], rowNum:2, rowList:[2,4,6], sortname: 'id', pager:"#pager", multiselect: true, caption: "喜事列表" }); $("#list").jqGrid('navGrid','#pager',{edit:false,add:false,del:false}); }); </script> </head> <body> <table id="list"></table> <div id="pager"></div> </body>

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值