留言簿
留言成功,请等待站长审核,谢谢支持!
2014-12-19 00:52 MVC菜鸟Roy
杨老师您好 我是MVC初学者,在学习mvc4的分页功能 MVCPager结合Bootstrap样式的时候 代码如下: @Html.Pager(Model,new PagerOptions { PageIndexParameterName = "pageindex", ShowPageIndexBox = false, ShowGoButton = false, ContainerTagName = "ul", PagerItemWrapperFormatString = "<li>{0}</li>", @CssClass="pagination", }) 出了个奇怪的问题 分页导航的右边出现了 页码数字 消不掉 请问如何能够解决呢 请不吝赐教
回复:您好,这是因为当前页默认不包含在任何html标签中,而bootstrap要求所有页索引都包含在li标签中,所以还需要设置PagerItemWrapperFormatString将当前页索引也包含在li中。下面是我的项目中用的PagerOptions的设置代码,您可以参考一下:
new PagerOptions { ShowFirstLast = false, ContainerTagName = "ul",PrevPageText = "上页",NextPageText = "下页",CssClass = "pagination", PagerItemsSeperator = "", PagerItemWrapperFormatString = "<li>{0}</li>", CurrentPagerItemWrapperFormatString = "<li class=\"active\"><a href=\"#\">{0}</a></li>" }
谢谢!
new PagerOptions { ShowFirstLast = false, ContainerTagName = "ul",PrevPageText = "上页",NextPageText = "下页",CssClass = "pagination", PagerItemsSeperator = "", PagerItemWrapperFormatString = "<li>{0}</li>", CurrentPagerItemWrapperFormatString = "<li class=\"active\"><a href=\"#\">{0}</a></li>" }
谢谢!
2014-12-18 21:36 coder
一个页面用2个mvcpager的时候会出现刷新,做不到无刷新,您例子里面也有这种情况,请问能解决么?
回复:您好,不知道您说的刷新是什么意思?请注意url中的hash(#)值改变并不等于刷新,示例中“多个AJax数据分页”这个例子就没有刷新,只是url中的hash值改变而已。谢谢!
2014-12-18 21:28 AJAX
Ajax.Pager搜索结果分页问题 搜索结果正常 但是点击页码直接跳转了。成了GET请求 用firbug调试没有看到任何JS错误 页面源码也生存是这样。与例子感觉没有问题 <div data-ajax="true" data-ajax-dataformid="#searchForm" data-ajax-method="Post" data-ajax-update="#Content" data-maxpages="116" data-mvcpager="true" data-pageparameter="id" data-urlformat="/Pro/Search/__id__" style="float:right"> 控制器有标识。打断点搜索结果会进下面的控制器 [HttpPost] public ActionResult Search 下面是搜索的视图 @using (Ajax.BeginForm("Search", new RouteValueDictionary { { "id", "" } }, new AjaxOptions { UpdateTargetId = "Content", InsertionMode = InsertionMode.Replace }, new RouteValueDictionary { { "id", "searchForm" } })) { .... } 下面是搜索结果的 @Ajax.Pager(Model, new PagerOptions { PageIndexParameterName = "id", ShowPageIndexBox = true, PageIndexBoxType = PageIndexBoxType.DropDownList, ShowGoButton = false }, new MvcAjaxOptions { UpdateTargetId = "Content", HttpMethod = "Post", DataFormId = "searchForm" }, new { style = "float:right" }) @section Scripts{@{Html.RegisterMvcPagerScriptResource();}} 不知为啥就是跳转而不进POST进去。不POST进去数据就会出错 有引用 <script src="~/Scripts/jquery-1.7.1.min.js"></script> <script src="~/Scripts/jquery.unobtrusive-ajax.min.js"></script>
回复:您好,从您帖出的的代码中没看出有什么问题,既然设置断点后能进入控制器的Search Action中,那么很可能是您的这个action代码有问题导致重新跳转,请检查一下。另外试试换个浏览器,比如Chrome,看是不是浏览器问题导致的。谢谢!
2014-12-18 17:30 张先生
我是非常非常敬佩您的忠实粉丝。 反馈的问题是: aspnetpager 分页控件在移动终端使用频率较高的UC浏览器里无效,请问这个问题怎么解决?
回复:您好,我从没用过UC浏览器,不过即使桌面版的某些浏览器,比如以前的邀游,也对ASP.NET的postback回发支持不太好,移动端使用AspNetPager时,建议使用url分页方式。谢谢!
2014-12-18 15:52 i鱿鱼
可以不改变url参数实现ajax分页么?
回复:您好,现在的MvcPager在ajax分页时就不会改变url参数,而只改变url中的hash(#)值。谢谢!
2014-12-18 09:30 hym
http://www.webdiyer.com/mvcpager/demo/pageindexbox 这个里面的跳转输入框(PageIndexBoxType.TextBox) 的宽度要怎么设置呢?或者他的样式?我用了PageIndexBoxWrapperFormatString 也不行的。 我用的2.0.0.1版本 mvc5项目 谢谢!!
回复:这个很简单,比如您的MvcPager的CssClass是mypager,那么可以这样定义CSS来控制页索引输入文本框:.mypager input[type="text"]{width:60px;....}。下拉框以此类推。谢谢!
2014-12-17 23:00 luke
您好, Ajax.Pager 分页时,我用的是您编译的DLL文件 @using Webdiyer.WebControls.Mvc @model PagedList<string> @{ ViewBag.Title = "Index"; Layout = "~/Views/Shared/_Layout.cshtml"; } <div id="articles"> @foreach (var item in Model) { @item <br /> } </div> @Ajax.Pager(Model, new PagerOptions { PageIndexParameterName = "id", ShowPageIndexBox = true, PageIndexBoxType = PageIndexBoxType.DropDownList, ShowGoButton = false }, new MvcAjaxOptions { UpdateTargetId = "articles", LoadingElementId = "loadingDiv", OnBegin = "$('#articles').fadeOut('slow')", OnComplete = "$('#articles').fadeIn('slow')" }) @section Scripts{@{Html.RegisterMvcPagerScriptResource();}} 可以确定是,页面没有脚本错误,但是每次点击分页的时候,都是做的跳转,也没有执行分页里面的ajax事件,弄了好久,还是没有找到问题的所在,希望您帮忙一下,不知道是不是少引用了js脚本,但是看你的说明,出了引用jquery之外,就是Html.RegisterMvcPagerScriptResource()注册脚本了
回复:您好,您用的是哪个版本的jQuery?MvcPager 2.0的Ajax分页要求jQuery 1.7以上,另外您是怎么确定没有脚本错误的?必须用正确的工具调试检查才可能发现,比如Chrome浏览器的开发者工具。另外您说的跳转具体是什么情况?是url完全变了还是只是url中hash(#)部分改变了?如果是后者,那就是正确的。不知道您的例子是否可以直接在公网上查看?如果可以的话告诉我网址我看一下。谢谢!
2014-12-17 16:12 bruce
建议老师把 IPagedList<T> 改为 IPagedList<out T> ,也就是加一个 out 关键字。我给您举一个例子,您就知道了。 前提:Student 类 继承 Person 类。 下面是 UCTester.cshtml 里面的代码: @model IEnumerable<Person> 记录总数:@(Model == null ? 0 : Model.Count()) 下面是 index.cshtml 里面的代码 @Html.Partial("UCTester", new List<Student>() { new Student() }) 结果:上面的代码是可以运行成功的。 问题:如果把 UCTester.cshtml 里面的 Model 换成 IPagedList<Person> 就会报错。
回复:您好,非常感谢您的建议!很惭愧,我做.net这么多年,从不知道泛型接口也可以用out限定符,因为从没见过这样的例子,看了您的留言后查了一下MSDN才知道这个限定符和普通方法中的out限制符是完全不同的,不过我还没仔细研究,不知道这样是否有什么副作用。我会记下您的问题,考虑好后确定是否在下次升级时加上这个功能。谢谢!
2014-12-17 10:36 sys
请问一下杨老师,为什么我用MVCpager,在页面上输html.pager的时候没有智能提示,也没有用。
回复:您好,不知道您用什么版本的VS?我用VS2013有智能感知提示,比较老的VS可能需要相应的xml文件才行,AspNetPager中有这个文件,MvcPager没有生成这个文件,另外请检查一下看是否是您的VS设置的问题。谢谢!
2014-12-15 16:08 qq
杨老师你好,我用你的mvcpager1.5 的时候正常,2.0的时候 每次一点击第一页或者首页 镶嵌的母版页 就要加载一次,1.5的时候第一页有那个{controller}/{action}/1,我想问下2.0mvcpager第一页怎么设置{controller}/{action}/1
回复:您好,不知道您用哪种分页方式?MvcPager从1.5到2.0的变化非常大,您可能需要参考一下帮助和示例重新学习一下它的用法,至于首页的url,是通过PagerOptions.FirstPageRouteName来设置的。谢谢!