留言簿

我要留言
留言搜索

2013-10-12 15:06  陈兴龙

比如我有10页数据内容 我在第二页删除一条数据然后重新绑定内容 却回到了第一页 我查了下CurrentPageIndex=1 这个什么原因呢 谢谢
回复:您好,这个应该和您绑定数据以及删除数据的方法有关系,您没有帖出代码无法知道具体原因。谢谢!

2013-10-11 17:03  .NET新手

AspNetPager:

你好!麻烦解答下?谢谢!

DataView dv = 获取DataView;
AspNetPager.RecordCount = dv.Count;

获取DataView取全部数据,一切都没有问题。但是如果一次取10条,AspNetPager.RecordCount设置为所有数据总数,就出现问题。

问题规则如下:
-----------------------------------------------------------------
DataView dv = 全部数据(11条);
AspNetPager.RecordCount = 全部数据个数(11);
结果:无问题
-----------------------------------------------------------------

-----------------------------------------------------------------
DataView dv = 部分数据(10条);
AspNetPager.RecordCount = 全部数据个数(11);
结果:第一页数据没有问题,第二页无数据。
-----------------------------------------------------------------
回复:您好,您显示的数据来自哪里呢?如果是DataView的话,本来就只有十条数据,只够显示一页,第二页当然没有数据,AspNetPager的RecordCount属性值必须和您要分页的数据总数相符,不相符的话就会产生空白页。谢谢!

2013-10-11 13:39  .NET新手

你好,研究AspNetPager745的时候遇到一些问题,在使用“查询结果分页”功能时发现searchOrders方法的SQL语句是查询所有数据,没有页码的相关语句。是不是需要自己写,当前页码又怎么获取?非常期待你的回复,谢谢!
回复:您好,这个示例中分页不是在SQL中,而是取出所有数据后用PagedDataSource实现分页的,请注意下面的PagedDataSource的代码,获取当前页索引可以用AspNetPager的CurrentPageIndex属性。谢谢!

2013-10-11 11:25  鲜宇

//string str = "已审核";
            int id = Convert.ToInt32(Request.QueryString["id"]);
            //string ids = id.ToString();

            //DataTable ds = pbll.GetList("plid='" + ids + "' and beizhu='" + str + "'").Tables[0];//按新闻的不通显示不同的评论数据
            DataTable ds = pbll.GetList(1000, "beizhu='已审核'", "id desc").Tables[0];//查询全部

            DataView dv = new DataView(ds);

            this.AspNetPager1.RecordCount = dv.Count;
            PagedDataSource ps = new PagedDataSource();
            ps.AllowPaging = true;
            ps.DataSource = dv;
            ps.CurrentPageIndex = AspNetPager1.CurrentPageIndex - 1;
            ps.PageSize = AspNetPager1.PageSize;

            this.Reppinglun.DataSource = ps;
            Reppinglun.DataBind();
上面注释第三行,数据已经显示出来了。但是只显示该新闻评论的一条数据,你看下是不是我那里写错了。谢谢
回复:您好,问题可能在GetList这个方法中,您没有帖出这个方法的代码,无法看出来,请设置断点调试一下。谢谢!

2013-10-09 21:12  rgshare

您好,在阅读MvcPager项目PagerBuilder.cs页源代码时,觉得AddQueryStringToRouteValues方法的前2行代码不是很恰当:
if(routeValues==null)
                routeValues=new RouteValueDictionary();
当routeValues为null时,它引用的对象已改变(不能达到修改原对象的目的)
回复:您好,routeValues只是一个临时变量,只是在GenerateUrl方法中用当前的viewContext.RouteData.Values来生成这个routeValues而已,并没有引用任何对象,不知道您说的“它引用的对象已改变(不能达到修改原对象的目的)”是什么意思?谢谢!

2013-10-09 09:54  Ganker

http://www.webdiyer.com/mvcpager/demo/delete/2/

你好,这个页面 在第一页点删除选中项后 就报错了。
回复:您好,确实是这样,我没有注意到这个问题,这个示例是演示删除选中项的,如果您没选中任何项的话,点击删除按钮就会出错,我有空修正一下,非常感谢您的提示!

2013-10-08 15:55  鲜宇

我做的一个网站是按类型查找的,用的是Repeater分页,

protected string titleName = "政策法规";

        hq.BLL.News hyxw = new hq.BLL.News();
        hq.BLL.shouyetupian sytp = new hq.BLL.shouyetupian();
        protected void Page_Load(object sender, EventArgs e)
        {
            //首页banner图
            Repshoutu.DataSource = sytp.GetList(5, "", "DTime desc");
            Repshoutu.DataBind();
          
            Grivd("");
           
            string temp = Request["Type"];
            int typeId = 1;

            hq.BLL.TypeNews XW = new hq.BLL.TypeNews();
            rptList.DataSource = XW.GetList("");
            rptList.DataBind();

            Repeater2.DataSource = hyxw.QueryByTypeId(5);
            Repeater2.DataBind();

            if (!string.IsNullOrEmpty(temp))
            {
                typeId = Convert.ToInt32(temp);
                hq.Model.TypeNews types = XW.QueryById(typeId);
                titleName = types.TypeName;
                RepNews.DataSource = hyxw.QueryByTypeId(typeId);
                RepNews.DataBind();
            }

        }
        private void Grivd(string p)
        {
            DataTable ds = hyxw.GetList(5000, "", "DTime desc").Tables[0];
            DataView dv = new DataView(ds);

            this.AspNetPager1.RecordCount = dv.Count;
            PagedDataSource ps = new PagedDataSource();
            ps.AllowPaging = true;
            ps.DataSource = dv;
            ps.CurrentPageIndex = AspNetPager1.CurrentPageIndex - 1;
            ps.PageSize = AspNetPager1.PageSize;

            this.RepNews.DataSource = ps;
            RepNews.DataBind();
        }
        protected void AspNetPager1_PageChanged(object sender, EventArgs e)
        {
            Grivd("");
        }
这样查找出来是所有的类型可以用分页,但是我按类型分页就不对
回复:您好,您分页时把类型参数传递到获取数据的相应方法中了吗?请设置断点一下,如果没传递过去,那么查询的数据肯定是全部数据。谢谢!

2013-10-08 14:54  cctv

老师,我想问问多表查询的结果不是一个model怎么用您的分页控件输出?
回复:您好,分页控件和数据源没有关系,所以怎么输出和它没有关系,是需要您自己处理的,一般来说,您只要熟悉SQL,多表关联分页也没有太大不同。谢谢!

2013-10-01 22:10  Newbie

sorry,刚才说错了,增加的PagerItemCssClass只需要应用给所有项,当前项是不需要应用的,因为它默认没有wrapper。这些刚才我已经都自己加好了,需要发给你修改过的源码吗?因为我目前不知道mvcpager的版权是怎样的。谢谢。
回复:您好,MvcPager不会再添加这些属性,完全没有必要,这样会导致控件变得臃肿不堪,这是从AspNetPager汲取的教训。谢谢您的建议和支持!MvcPager用的是Microsoft Public License (Ms-PL)版权协议,一般来说,只要您不修改控件源代码及生成的html代码中的版权信息,那么可以用于任何地方,包括商业项目,如果要去掉这些版权信息,可以象征性地支付88元商业授权费用购买完全可以自己任意修改的商业版。谢谢!

2013-10-01 21:57  Newbie

我找到了,在PageBuilder.cs行421那里,使用了HttpUtility.HtmlEncode,直接去掉应该是可以的吧?因为如果要使用encode过的文字,用户可以在传入时就直接传入encode的文字。
另外我想提个建议,在PagerOptions.cs中加入ItemClssClass以及CurrentItemCssClass,为每个项增加一个class,谢谢。
回复:您好,不可以去掉,去掉的话如果随意对页索引使用html代码,很可能会导致相应的分页链接失去做用。至于您说的添加CssClass属性的问题,AspNetPager就因为这些属性导致变得很臃肿,应用CSS样式完全可以按示例中说的方法进行,没必要添加这么多属性,属性太多会使使用它的开发人员眼花缭乱,无所适从。谢谢!
;