留言簿
留言成功,请等待站长审核,谢谢支持!
2018-01-29 21:31 阿斌
杨老师你好,今天碰到一个非常奇怪的问题,目前使用的是您的最新版本的MVCPAGER ,具体情况如下:第一次进入页面的时候,如果页面数据多于1页,再点击搜索后,然后再点击下一页是正常的。如果首次加载,数据少于两页,也就是说只有一页,或者没有数据,那我点击搜索之后,就算出来的数据是多于2页的,再点下一页,提交到后台的请求 就自动变为get请求,而不是post请求,导致页面404. 备注:我使用的是 ajax表单的分页 具体代码如下: public ActionResult Order(int id = 1) { ViewBag.IsAdmin = CurrentUser.U_IsAdmin; var qry = _orderService.TableNoTracking; if (!CurrentUser.U_IsAdmin) { qry = qry.Where(x => x.O_UserID == CurrentUser.U_UserID); } //qry = qry.Where(x => x.O_State == 0); DateTime s = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd 00:00:00")); DateTime e = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd 23:59:59")); qry = qry.Where(x => x.O_SubTime >= s); qry = qry.Where(x => x.O_SubTime <= e); var model = qry.OrderByDescending(a => a.O_SubTime).ToPagedList(id, PageManage.PageSize); if (Request.IsAjaxRequest()) return PartialView("_AjaxOrderPost", model); return View(model); } [HttpPost] public ActionResult Order(string orderid, int? state,string starttime,string endtime, int id = 1) { return AjaxSearchPost(orderid, state, starttime, endtime, id); } [HttpPost] public ActionResult AjaxSearchPost(string orderid, int? state, string starttime, string endtime, int id = 1) { ViewBag.IsAdmin = CurrentUser.U_IsAdmin; var qry = _orderService.TableNoTracking; if (!CurrentUser.U_IsAdmin) { qry = qry.Where(x => x.O_UserID == CurrentUser.U_UserID); } if (!string.IsNullOrEmpty(orderid)) { Int64 order_id = Convert.ToInt64(orderid.Trim()); qry = qry.Where(x => x.O_OrderID == order_id); } if (state !=
回复:您好,出现这个问题的原因是只有一页或没有数据时,MvcPager默认不显示,也就导致分页jQuery插件不能绑定事件,只需要将PagerOptions.AutoHide设为false即可。谢谢!
2018-01-25 20:10 Xiaojun
杨老师,MvcPager既然有NET Core版本,有没有想过为这个版本添加TagHelper形式的部署方式?
回复:您好,本来就是tag helper,两种呈现方式都支持,请注意看示例。谢谢!
2018-01-23 21:22 学生
杨老师您好,请问设置了InsertionMode.InsertAfter 后没有效果是为什么呢?想实现加载更多,即在原有数据基础上再加载新数据。 @Ajax.Pager(Model, new PagerOptions { Id = "divPage", ShowNumericPagerItems = false, //ShowPrevNext = false, ShowFirstLast = false, NextPageText = "查看更多>>", PrevPageText = "上一页", //NextPageText = "下一页", //ShowDisabledPagerItems = false, //AlwaysShowFirstLastPageNumber = false, PageIndexParameterName = "pageIndex", NumericPagerItemCount = 3, CssClass = "moregoods", ShowMorePagerItems = true }, new MvcAjaxOptions { UpdateTargetId = "ProductListDiv", LoadingElementId = "nonedata", LoadingElementDuration = 1000, InsertionMode = InsertionMode.InsertAfter })
回复:您好,这个属性默认值是Replace而且不能修改,请看帮助文档中的说明:http://www.webdiyer.com/mvcpager/docs/mvcajaxoptions/。谢谢!
2018-01-23 17:06 椰楠
<div id="nonedata" class="nonedata" style="display: none;"> 正在获取数据,请稍候... </div> <div style="clear: both;"> </div> <div class="foot"> @Ajax.Pager(Model, new PagerOptions { Id = "divPage", ShowNumericPagerItems = false, ShowPrevNext = false, ShowFirstLast = false, NextPageText = "查看更多>>", ShowDisabledPagerItems = false, AlwaysShowFirstLastPageNumber = false, PageIndexParameterName = "pageIndex", NumericPagerItemCount = 1, CssClass = "moregoods", }, new MvcAjaxOptions { UpdateTargetId = "ProductListDiv", LoadingElementId = "nonedata", LoadingElementDuration = 1000, InsertionMode = InsertionMode.InsertAfter }) </div> 生成不报错,但从前端代码看,生成以下代码,请问是为什么 data-ajax-update="#ProductListDiv" data-invalidpageerrmsg="页索引无效" data-outrangeerrmsg="页索引超出范围" data-pagecount="1" data-pageparameter="pageIndex" data-pagerid="Webdiyer.MvcPager" data-urlformat="/PagerDemo?pageIndex=__pageIndex__" id="divPage"></div> <!--MvcPager v3.0.1 for ASP.NET MVC 4.0+ © 2009-2015 Webdiyer (http://www.webdiyer.com)-->
回复:您好,生成的代码就是对的,您有什么问题?谢谢!
2018-01-21 22:22 一个学生
我想爬一个用您的分页插件的网站,发现该网站只能使用ie来使用,例如Chrome点击其他页无反应,打开源代码,结果是form的提交来改变页数或者显示条数,我模拟提交后,还是返回第一页的数据,请问这是什么原理?谢谢您。
回复:您好,您说的页面应该是用了默认的Postback分页,也就是提交表单回发分页,ASP.NET回发机制会对提交的ViewState的值进行验证,我不知道您是如何模拟的,如果没有提交隐藏表单中的ViewState,那么验证就会失败,因此也就不会执行服务器端分页事件,您可以在网上搜索一下asp.net回发验证机制了解一下。谢谢!
2018-01-13 16:19 大喷菇
杨老师好 我这边使用 mvcpager3 做分页,使用HtmlForm搜索(Post)检索数据,并使用了页码下拉框做快速跳转,首次加载时下拉框中的页码是正确的,但是通过查询条件,查询以后快速跳转下拉框的数据就不会改变了,比如:默认加载页面时,有10页数据,快速跳转下拉框有1~10,但是查询以后,只剩2页数据了,快速跳转下拉框中还是1~10并没有变成1~2,请杨老师给予解答。
回复:您好,您使用的是Ajax分页模式吧?在Ajax分页模式下启用查询功能时,这是个已知的bug,因为本人Javascript技术水平有限,尝试过解决这个问题但没有找到好的办法,在当前这种模式下,Ajax查询后是不会更新下拉框的值以及分页的总记录数的,所以会出现这种问题,建议您禁用页索引下拉框或改用普通路由分页方式。谢谢!
2018-01-05 15:57 luck
请问AspNetPagerCN-7.5.1\Demo\App_Data文件夹里面的数据库文件是MS SqlServer多少版本的?
回复:您好,时间长了忘记了,专门下载检查一下,App_Data目录下有两个不同版的数据库文件,NORTHWND.MDF是SQL Server 2012,NORTHWND2.MDF是SQL Server 2008 R2。谢谢!
2018-01-04 16:51 zhrong
杨老师您好,我参考您的AjaxForm搜索(Get)分页的示例,发现点击搜索的时候是ajax请求,点击分页的时候不是ajax请求。一直没有找到原因,源码发您gmail邮箱了,主题是:zhrong-AjaxForm搜索(Get)分页,点击分页不是ajax请求。不胜感激!
回复:您好,两个问题:1、MvcPager必须放在分部视图中;2、必须在主页面用@{Html.RegisterMvcPagerScriptResource();}来引用脚本插件;请参考示例和帮助文档。谢谢!
2018-01-02 22:46 wheeky
我发现使用MVC PAGER3.0 采用普通FORM POST查询,然后AJAX分页,点一次查询后,再点分页就不会把FORM的查询条件POST到后台,只有当我点击查询2次后,才会有效,代码与你的示例类似,没有发现问题。
回复:您好,请看上一条留言的回复,我测试过没有您说的这个问题,您需要检查一下自己的代码是否有问题。谢谢!
2018-01-02 21:34 wheeky
我使用你的MVCPAGER3.0,但发现你网站的示例代码都是用了2层分部视图,而我不想使用2层分部视图,只想用一个分部视图就是实现AJAX,我使用后发现如果我HTMLFORM POST 查询了2次后,分页可以正常使用,如果只是查询了一次,再点AJAX分页就会取不到查询的FORM的表单内容。 请帮忙看一下,谢谢! 代码贴出来太长了,就不贴了
回复:您好,示例中有不使用分部视图进行Ajax分页的例子,就是Ajax局部加载,只是查询的例子被从菜单中注释掉了,但源代码中仍有,就是AjaxSearchPartialPost这个Action,我测试过了,没有您说的问题,查询一次后分页,查询参数可以正确传递到后台,您的问题应该是您自己的代码问题,请参考示例调试检查。谢谢!