留言簿

我要留言
留言搜索

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 视图的基类”是如何实现的吗?或者您有可以重现这个问题的最简单的示例可以发给我看看吗?谢谢!
;