学习篇:aspx页面、母版页和用户控件页的page_load方法

大家好~!我是2月18号的博主——博主一号~~~

首先,欢迎你进入《2月18号》~!

然后,开始今天的话题吧。

1.首先aspx页面 套用了 母版页 ,然后再aspx页面里拖入自己写的分页web用户控件,这里就出现问题了,每一个东东都有自己Page_Load方法。这执行顺序何来?

2.实践出真知,我再每个Page_Load方法中,都输入了一句输出自己的语句。response.write("这是aspx页面"); ...知道的别拍砖,不知道的可以自己实践一下。

3.哈哈,元方得知后,没等我问,抢着就说了:执行顺序是这样的,aspx页面→母版页→web用户控件。

4.然后是一片掌声那。。。。声声入耳,如雷贯耳啊....

得知这样执行顺序之后,就知道该咋写自己的分页web用户控件了,也知道该啥时候调用了。代码贴上

分页web用户控件后台
 protected string strPaging;//存储页码条

        private int _currentPage; //表示当前页
        private int _pageCount;//表示总页数

        public int PageCount
        {
            get { return _pageCount; }
            set { _pageCount = value; }
        }

        public int CurrentPage
        {
            get { return _currentPage; }
            set { _currentPage = value; }
        }

        protected void Page_Load(object sender, EventArgs e)
        {
            string categoryId = string.Empty;
            string orderby = string.Empty;

            if (PageCount <= 1)
            {
                return;
            }
            //起始页
            int start = CurrentPage - 5;
            if (start <= 1)
            {
                start = 1;
            }
            int end = start + 9;
            if (end > PageCount)
            {
                end = PageCount;
                start = end - 9 > 0 ? end - 9 : 1;
            }
            if (!string.IsNullOrEmpty(Request.QueryString["categoryId"]))
            {
                categoryId = Request.QueryString["categoryId"];
            }
            if (!string.IsNullOrEmpty(Request.QueryString["orderby"]))
            {
                orderby = Request.QueryString["orderby"];
            }

            StringBuilder sb = new StringBuilder();
            // sb.Append(string.Format("<a href=?page=1>&nbsp;首页&nbsp;</a>"));
            if (CurrentPage > 1)
            {
                //因为orderby传的数据 加了 空格的原因,所以 加了 Server.UrlEncode(orderby) 程序才能正常,搞了好久。要不 空格后面的排序条件升序还是降序 就会 丢掉。
                sb.Append(string.Format("<a href=?page={0}&categoryId={1}&orderby={2}>&nbsp;上一页&nbsp;</a>", CurrentPage - 1, categoryId, Server.UrlEncode(orderby)));
            }

            for (int i = start; i <= end; i++)
            {
                if (i == CurrentPage)
                {
                    sb.Append("&nbsp;" + i + "&nbsp;");
                }
                else
                {
                    sb.Append(string.Format("<a href=?page={0}&categoryId={1}&orderby={2}>&nbsp;[" + i + "]&nbsp;</a>", i, categoryId, Server.UrlEncode(orderby)));
                }
            }

            if (CurrentPage < PageCount)
            {
                sb.Append(string.Format("<a href=?page={0}&categoryId={1}&orderby={2}>&nbsp;下一页&nbsp;</a>", CurrentPage + 1, categoryId, Server.UrlEncode(orderby)));
            }
            //  sb.Append(string.Format("<a href=?page={0}>&nbsp;末页&nbsp;</a>", PageCount));
            strPaging = sb.ToString();

        }
<p style="font-size:14px"><%=strPaging%></p> //再前台写了个p标签,来展示分页数据

  然后,就是再aspx页面的时候,得到总页数赋值给PageCount属性,得到当前页赋值给CurrentPage属性。

需要注意的几个问题,我里面写了几个排序,可以按照日期和价格来排序,因为ispostback的原因,不能用post的方式提交,这样导致,不会绑定数据给分页web用户控件的两个属性,所以,我再aspx页的时候,做了url重新拼接,重定向发送一次get请求,这样就一切ok了。

还要注意的一个问题就是排序方式是:asc方式,还desc方式时,我当时传参是这样的:“UnitPrice asc” .这样传入url的时候,会将UnitPrice后面的排序方式落下。传入参数的时候记得加上server.UrlEncode("UnitPrice asc"); 这样传的话,就不会落下。

坐等大家的吐槽,嘿嘿~~~~

转载于:https://www.cnblogs.com/2-18/archive/2012/10/25/2738017.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值