Jquery无法设置PageIndex,手动赋值仍默认1的解决办法
解决排序时PageIndex始终被重置为1的问题
看起来你遇到了一个很常见的分页排序坑——明明手动设置了PageIndex,结果每次排序都被强制拉回第1页,我来帮你一步步排查解决:
第一步:先定位问题出在前端还是后端
首先打开浏览器的开发者工具(按F12),切换到「Network」标签,然后触发你的排序操作:
- 找到发送给
/admin/Setting/UserGrid的GET请求 - 查看请求的Query String参数,确认
PageIndex到底是你设置的2,还是被改成了1
如果这里显示PageIndex=2,那问题100%在后端代码;如果显示PageIndex=1,那问题出在前端的逻辑里。
第二步:如果是前端传值错误,这么修
看你给出的代码,LoadUser函数里的PageIndex是硬写的2,但可能存在这些问题:
- 调用
LoadUser的地方,没有传递当前的页码,反而被其他逻辑覆盖成了1 - 页面上的分页控件默认把页码重置为1,和你的手动设置冲突
修复方案:
修改LoadUser函数,让它能接收当前的页码,而不是硬编码:
// 给函数加个pageIndex参数,用来接收当前页码 function LoadUser(columnname, sort, IsClient, pageIndex) { var className = $('#' + columnname).attr('class'); IsClient = $('#ChkIsClient').is(':checked'); // 如果没传pageIndex,就取当前分页控件的页码,或者默认1(根据你的实际情况调整) pageIndex = pageIndex || parseInt($('#currentPageInput').val()) || 1; $.ajax({ type: "GET", url: "/admin/Setting/UserGrid", contentType: "application/json; charset=utf-8", data: { PageIndex: pageIndex, filter: $("#txtSearchUser").val(), SortColumn: columnname, SortDirection: sort, IsClient: IsClient }, // 剩下的ajax回调逻辑... }); }
然后在调用LoadUser的时候,把当前的页码传进去,比如点击排序按钮时:
// 假设你的排序按钮有.sort-column类 $('.sort-column').click(function() { var colId = $(this).attr('id'); var sortDir = $(this).hasClass('asc') ? 'desc' : 'asc'; // 从分页控件里获取当前页码,比如你用了一个隐藏input存当前页 var currentPage = parseInt($('#currentPageInput').val()); // 调用LoadUser时传入当前页码 LoadUser(colId, sortDir, $('#ChkIsClient').is(':checked'), currentPage); });
第三步:如果是后端重置了PageIndex,这么修
这是最常见的坑!很多人写后端逻辑时,会默认在排序时把页码重置为1,比如这样的代码:
public IActionResult UserGrid(int PageIndex = 1, string filter = "", string SortColumn = "", string SortDirection = "", bool IsClient = false) { // 就是这段代码在搞鬼! if (!string.IsNullOrEmpty(SortColumn)) { PageIndex = 1; // 排序时强制回到第一页 } // 剩下的分页查询逻辑... }
如果你的后端有这段逻辑,直接删掉它就行。如果业务上需要在首次排序时回到第一页,可以加个判断:比如只有当前端没有传PageIndex(也就是用了默认值1)的时候才重置,而不是不管前端传什么都强制改成1。
另外还要检查后端参数的拼写是否和前端一致(比如前端传的是PageIndex,后端是不是写成了pageindex?不过C#默认大小写不敏感,但最好统一)。
最后测试一下:修改完后,手动设置PageIndex=2触发排序,看请求参数和后端接收的值是否一致,分页结果是否正确显示第2页的内容。
内容的提问来源于stack exchange,提问作者Breathing
相关产品推荐
相关产品推荐

