留言簿

我要留言
留言搜索

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}&nbsp;")).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的分页控件介绍,非常需要,希望你能抽出时间做一下。
回复:您好,最近正在利用空闲时间学习和开发,不过因为事情多,可能不会很快有结果,如果可以的话加我的那个分页群,我有最新消息会在群里公布。谢谢!
;