留言簿
留言成功,请等待站长审核,谢谢支持!
2016-11-09 08:57 Bob
为什么要根据Url的参数来区分呢?控件不是也支持Post模式吗?希望以后可以支持同页面相同id的分页,这样方便后台重用。
回复:您好,使用url参数是为了搜索引擎友好,支持直接输入url跳转到指定页且可以保存到收藏夹。谢谢!
2016-11-03 14:50 Bob
你在10月25日回复说“同一个页面有多个MvcPager的话,就意味着当前上下文的Controller和Action是相同的”。 如果可以多个MVCPager的话,理论上controller+action就可以决定调用后台哪个方法,为什么2个mvcpager的id参数都一样是id呢, 现在的实际情况下面必须为1个参数id1,另一个id2,不可以都是id。类似下面。 public ActionResult Action1(id=1) { ... return PartialView(...); } public ActionResult Action2(id=1) { ... return PartialView(...); } 不知道我这次是否解释清楚了。
回复:您好,我明白您的意思,如果当前页面上有两个MvcPager都用Ajax分页模式,那么的确PagerOptions.PageIndexParameterName属性值可以相同,但Ajax分页是url中的hash参数值的改变而触发的,如果两两个MvcPager都用相同的PagerOptions.PageIndexParameterName属性值,那么两个MvcPager中任何一个分页,另一个也会同时进行分页,如果是标准url分页,也是一样的,因为MvcPager是通过Url中的页索引参数来决定显示第几页,如果两个MvcPager的页索引参数名都一样,那么两个MvcPager的分页事件就会被同时引发,您可以看一下源代码详细地了解一下其中的原理。谢谢!
2016-11-03 12:13 样式的问题
关于aspnetpager 样式的问题, 如果使用bootstrap样式, 编译成html之后并没有ul li 的样式。。
回复:您好,不是很明白您的问题,您能把问题描述得更清楚一点吗?本站示例中的AspNetPager使用bootstrap样式的例子有您说的问题吗?谢谢!
2016-11-01 09:45 Bob
在你的AjaxPager里已经有2个参数一个是ActionName, 一个是ControllerName。这样就可以在一个页面使用俩个分页控件,并且2个分页控件调用不同的Action。我已经把它做成动态的了,类似{ActionName=@Model.ActionName, ControllerName=@Model.ControllerName} 来动态加载不同的数据。这样我在我的学生Controller里只需要设置 public ActionResult Students(int id=1) { UserPickerModel model = new UserPickerModel() model.ControllerName="User"; model.ActionName="GetStudents"; return View(model) } public ActionResult Teachers(int id=1) { UserPickerModel model = new UserPickerModel() model.ControllerName="User"; model.ActionName="GetTeachers"; return View(model) } 不然同一个页面多个分页控件只能调用同一个Action太局限了,你觉得呢。
回复:您好,我估计您理解错了,MvcPager本来就可以用routeValues参数指定不同的Controller和Action,不知道您说的“同一个页面多个分页控件只能调用同一个Action”是什么地方得出的结论?谢谢!
2016-10-30 19:21 郭修峰
<input type="text"/> <div id="container"> @Html.Partial("PartialPage",Model) <div style="width:100%;overflow:auto;"> <div style="float:right">跳转到第<select id="pib"></select>页</div> @Ajax.Pager(Model).Options(o => o.SetId("mypager").SetPageIndexParameterName("id").SetPageIndexBoxId("pib"). SetPagerItemTemplate("{0} ")).AjaxOptions(a => a.SetUpdateTargetId("container").EnablePartialLoading()) </div> </div> 为什么我这样就实现不了局部刷新啊 input中的值在单击页数的时候就没了
回复:您好,请用F12调试是否页面上有脚本错误,如果使用了Ajax查询分页功能,那么请不要使用页索引下拉框,因为存在一个已知的bug,导致查询后页索引下拉框无法被填充或填充不正确。谢谢!
2016-10-25 23:02 Bob
还是我。:-) 我觉得通过/Controller1/Action1?id=1 和/Controller1/Action2?id=1 应该是可以获取不同的数据。比如下方Controller1中2个action,一个action1一个action2,如下所示。 public ActionResult Action1(UserPickerModel uPicker) { uPicker.Users = 获取教师信息 return PartialView("PartialGridUserPick", uPicker); } public ActionResult Action2(UserPickerModel uPicker) { uPicker.Users = 获取学生信息; return PartialView("PartialGridUserPick", uPicker); } 下面是我UserPickerModel的类 public class UserPickerModel { public string text { get; set; } public int? id { get; set; } public int? id1 { get; set; } public int? id2 { get; set; } } 我觉得即使使用多个pager,有一个id就足够了,因为通过不同的action可以找到相应的方法,但是我现在必须写为上面的形式,id1和id2,非常不方便。这样我的代码会感觉很奇怪。
回复:您好,同一个页面有多个MvcPager的话,就意味着当前上下文的Controller和Action是相同的,所以不用页索引参数名法是没法区分的,如果您有可以实现的例子,可以发给我参考一下。谢谢!
2016-10-25 15:37 冬冬
杨老师,你好,我的分页OnBegin事件里返回false, OnBegin = "pageChange" function pageChange() { alert("wokaishile!"); return false; } 当我第一次点击第2页后正常执行OnBegin事件,可是在我再一次点击第2页的时候就不执行了,示例里面好像也有同样的问题,请问一下这个问题可以怎么解决?
回复:您好,示例的确存在这样的问题,暂时未找到原因,该问题已记录并希望下次更新时能够解决。谢谢!
2016-10-25 10:04 Bob
大师您好,最近项目上一直使用MVCPager。基本功能完成的非常好。但是有一种情况貌似有个bug。 当一个页面同时加载2个pager的时候,而且分页id假设都是叫id,分页不起作用。原因是点击第二个分页的时候会跑去调用第一个分页的后台方法。 第一个分页设置 ControllerName = “Controller1” ActionName = “Action1” UpdateTargetId =“div1” PageIndexParameterName = “id” 第二个分页设置 ControllerName = “Controller2” ActionName = “Action2” UpdateTargetId =“div2” PageIndexParameterName = “id” 分页页面显示的时候鼠标移到分页数字上显示/Controller2/Action2?id=1。但是点击这个数字它后台实际调用的确是/Controller1/Action1?id=1 我又试了一下,如果把分页2的id设置为PageIndexParameterName = “id2”的话调用就正常,它会正确调用/Controller2/Action2?id2=1
回复:您好,这不是bug,这是控件运行的必需条件,而且控件的文档中也有特别说明,如果两个分页控件的PageIndexParameterName属性值一样,就相当于url中的两个参数名称一样,控件怎么能知道哪个才是当前的页索引参数呢?请看这个示例中的说明http://www.webdiyer.com/mvcpager/demos/multiplemvcpagers/,谢谢!
2016-10-24 18:27 王艳杰
你好,我想问一下,2.0版本能不能传额外的参数,相当于我每次翻页的时候都要传当前页码和一个当前步骤字段,我再你的帮助文档中没找到可以传参的变量,下面是我的代码,麻烦给看一下,谢谢: @Html.Pager(Model, new PagerOptions() { PageIndexParameterName = "page", ShowPageIndexBox = false, FirstPageText = @Resources.Language.Open_FirstPage, //"首页", PrevPageText = @Resources.Language.Open_PrePage, //"上一页", NextPageText = @Resources.Language.Open_NextPage, //"下一页", LastPageText = @Resources.Language.Open_LastPage, //"末页", PageIndexBoxType = PageIndexBoxType.DropDownList, ShowGoButton = false, GoButtonText = @Resources.Language.Open_GoPage, //"转到", AutoHide = false }, new { @class = "dataTables_paginate paging_bootstrap_full_number" })
回复:您好,url参数可以通过RouteValues集合进行传递,Pager构造函数中有个RouteValueDictionary routeValues参数就是,不过不建议在分页过程中传递参数,这样很可能导致每次分页都添加不同的参数值,当前页码是分页控件自动生成的,不需要传递,如果要在url中传递参数的话,最好该参数在分页之前就存在,分页后MvcPager会把所有url中原有的参数原样传递到下一页。谢谢!
2016-10-21 16:48 无语
能不能做一个asp.net core的分页控件介绍,非常需要,希望你能抽出时间做一下。
回复:您好,最近正在利用空闲时间学习和开发,不过因为事情多,可能不会很快有结果,如果可以的话加我的那个分页群,我有最新消息会在群里公布。谢谢!