留言簿
留言成功,请等待站长审核,谢谢支持!
2017-01-05 13:36 文彬
Hi杨涛: 我用MvcPager,有个小问题,数据一共11条,共2页,一页10条。我删除一条后回到页面,页码还是2,但点击2,显示页码超出范围。然后F5刷新一下就好了。每次删除数据后页面不变,F5才正常。 function delImg_Click(enterpriseId) { layer.open({ type: 2, title: '删除', shadeClose: true, shade: 0.8, offset: ['150px', '250px'], area: ['380px', '250px'], content: 'DeleteEnterprise?id=' + enterpriseId }) return false; } @using (Html.BeginForm("DeleteEnterprise", "Enterprise",FormMethod.Post)) { <div style="float:left;margin-left:15px;margin-top:10px;"> <label style="font-size:16px;margin-top:10px;">您确定要删除该帐号吗?</label> <div style="clear:both;"></div> <div style="margin-top:30px;text-align:center;"> <input name="id" style="display:none;" value="@Request.QueryString["id"]" /> <input type="submit" class="buttonstyle" value="删除" /> <input type="button" class="buttonstyle" value="取消" onclick="closeLayer();" /> </div> </div> } controller: [HttpGet] public ActionResult DeleteEnterprise() { return View(); } [HttpPost] public ActionResult DeleteEnterprise(int id) { //调用删除操作 int result = _enterpriseService.deleteEnterpriseById(id); if (result > 0) { return RedirectToAction("GetEnterPriseInfo"); } return Content("删除出错!"); } 之前都用aspx,分页用AspNetPager很方便。刚接触MVC。 麻烦有时间看看多谢!
回复:您好,这是缓存的问题,您需要把客户端和服务器端缓存都禁用掉,或者在url后加个随机参数即可。谢谢!
2017-01-04 19:07 wenbin
hi您好,有个问题请教,我用MvcPager分页查询,正常列表和点击页码都没有问题。但点击搜索图标发现问题,通过debug后台可以得到符合条件的结果,debug进到页面也可以看到Model中内容符合搜索条件,但最后页面显示却没变,还是和刚进去时一样。有空请帮我看看多谢! 部分代码: controller: int totalCount = 0; int pageIndex = id ?? 1; int pageSize = 10; PagedList<EnterpriseViewModel> pagerInfo = _enterpriseService.GetEnterpriseList(key, pageIndex, pageSize, ref totalCount).AsQueryable().ToPagedList(pageIndex, pageSize); pagerInfo.TotalItemCount = totalCount; pagerInfo.CurrentPageIndex = (int)(id ?? 1); return View(pagerInfo); 页面部分代码: function searchEnterprise() { var keyWords = $("#key").val(); $.ajax({ url: "../Enterprise/GetEnterPriseInfo?id=1" + "&key=" + keyWords, type: "GET" }); } @using (Ajax.BeginForm("GetEnterPriseInfo", "Enterprise", new RouteValueDictionary { { "id", "searchForm" } }, new AjaxOptions { UpdateTargetId = "accounts", HttpMethod = "GET", InsertionMode = InsertionMode.Replace })) <div class="container" style="float:left;margin-top:20px;margin-left:15px;"> <div class="col-md-8"> @Ajax.Pager(Model, new PagerOptions { PageIndexParameterName = "id", FirstPageText = "首页", PrevPageText = "上一页", NextPageText = "下一页", LastPageText = "末页", NumericPagerItemCount = 10, Id = "flickrpager", CurrentPagerItemTemplate = "<span class=\"current\">{0}</span>", DisabledPagerItemTemplate = "<span class=\"disabled\">{0}</span>", }).AjaxOptions(a => a.SetUpdateTargetId("accounts").SetDataFormId("searchForm")) </div> </div> js都正确导入的
回复:您好,从上面的代码中看不出什么问题,很可能是更新目标,也就是UpdateTargetId所指向的html元素有问题导致搜索后没有更新,您需要用浏览器的F12开发者工具调试检查,看是否有脚本错误。谢谢!
2016-12-21 17:25 向上看
当设置了PrevPageText和NextPageText之后,就会发现这两个按钮刚好反了,原本的上一页,链接变成了下一页,而原来的下一页,却变成了上一页。请问该如何正确设置?
回复:您好,请问您说的是哪个控件?AspNetPager还是MvcPager或者UrlPager?什么版本?是否用了逆向分页功能?谢谢!
2016-12-08 16:16 邢波
在使用.net MVC pager 后其他地方用JQ的ajax提交数据时很受影响,主要是在ajax提交时的url被分页的地址强行加载到ajax的url前 比如: @using (Ajax.BeginForm("glyphicon","Sys_Icon", new RouteValueDictionary { { "id", 1 } }, new AjaxOptions { UpdateTargetId = "tb", InsertionMode = InsertionMode.Replace, OnBegin = "begin", OnSuccess = "secc()", OnFailure = "err()" }, new RouteValueDictionary { { "id", "searchForm" } })) { <div class="row" style="text-align:left"> <div class="form-inline" style="padding-left:8px;padding-right:10px;"> <div class="form-group" style="margin-bottom:5px;"> <select id="selectvalue" name="selectvalue" class="form-control" title="请选择...." style="text-align:left;padding-left:0px;"> <option value="IconName" selected="selected">图标中文</option> <option value="IconStatus">状态</option> <option value="EditName">修改人</option> </select> <input type="text" id="values" name="values" placeholder=" 关键字......" class="form-control" style="padding-left:0px;padding-right:0px;" /> <button type="button" id="btnSave" class="btn btn-default">搜索</button> </div> </div> </div> } --------------------------------- 他会显示地址为 http://localhost:16875/Admin/Sys_Icon/glyphicon/2 -------------------------- 下面用ajax提交数据 $.ajax({ async: false, data: { id: tmpid }, url: "Sys_Icon/GetglyphiconbyID", type: "post"}) -------------- 在网页调试器里显示要提交的地址是 http://localhost:16875/Admin/Sys_Icon/glyphicon/Sys_Icon/GetglyphiconbyID 因为根本就没有上面的地址,所以就出错了,请问有办法把url里的地址在ajax里控制吗?
回复:您好,这个问题和MvcPager没有任何的关系,您在ajax方法中传递的地址不应该是针对当前地址的相对地址,而应该是相对于网站根目录的相对路径,如 /sys_icon/...,或用@Url.Content()方法将相对路径转换为绝对路径。谢谢!
2016-12-01 11:17 fan
public static PagedList<T> ToPagedList<T> ( this IQueryable<T> allItems, int pageIndex, int pageSize ) { if (pageIndex < 1) pageIndex = 1; var itemIndex = (pageIndex - 1) * pageSize; var pageOfItems = allItems.Skip(itemIndex).Take(pageSize).ToList(); var totalItemCount = allItems.Count(); return new PagedList<T>(pageOfItems, pageIndex, pageSize, totalItemCount); 传递IQueryable<T>参数进去 分页的页码跟实际查询出来的数据页码对不上 IQueryable<T> 并没有执行查询条件 总条数为表中所有的数据 怎么破? ToList的话 数据量上来以后加载超时
回复:您好,您是如何调用的呢?
2016-11-30 21:14 黄秀林,
您好:杨涛老师: 首页感谢您提供的组件,现在遇到一个问题,就是AspNetPager 这个控件,不放“<form id="form1" runat="server">”这里能用吗,以前始终是放在form里的,现在因为一些原因不能用Form.
回复:您好,如果用默认的Postback分页,则必需放在服务器端form中,如果是url分页,则可以不用服务器端form。谢谢!
2016-11-30 10:41 wihate
好吧,我用的就是UrlPager2.0版本的。我以为只有一个版本! 而且说的这两个问题的确存在: 1、控件和Microsoft.AspNet.FriendlyUrls 的routes.EnableFriendlyUrls()有冲突,配置的地址的名字和文件名相同,分页功能不起作用; 2、设置NumericPagerItemCount为10,如果不足10页的话,居然用负数页码补足10项。 你可以测一下。
回复:谢谢提供反馈信息,我这几天抽时间检查一下,不知您是否有可以直接重现这些问题的示例项目,有的话发给我看看。谢谢!
2016-11-29 23:32 小王
可以加个根据字段排序的功能吗,如果有需求要加的话该怎么改代码呢。
回复:您好,分页和排序没有直接关系,因为分页功能和数据是独立的,排序完全可以按自己的需要去实现。谢谢!
2016-11-29 22:27 地鼠
非常感谢您的回复提取源码跟踪调式后因本人程序造成,现已处理 //public sealed override void Write(object value) //{ // Output.Write(value); //}
回复:不客气,解决了就好,谢谢!
2016-11-29 17:23 地鼠
你好,非常感谢你的产品帮助我不了忙,但在开发过程中碰到了一个问题,当我"自定义 Razor 视图的基类后",分页无法再进行使用!直接输出“Webdiyer.WebControls.Mvc.AjaxPager”
回复:您好,您能详细说明一下“自定义 Razor 视图的基类”是如何实现的吗?或者您有可以重现这个问题的最简单的示例可以发给我看看吗?谢谢!