【牛腩新闻发布系统】——分页其实很简单

牛腩完成了,我觉得重头戏在最后的分页上,因为通过对ITOO界面的逐步了解。我觉得,分页就是面向对

象的一大步,在整理了分页的逻辑,加上师傅和同学的一些好的建议,所以想写出来这篇文章跟大家分享我是如何敲

分页的。


逻辑是执行力的基础


在开始敲分页的之前,我很认真的理了一下分页的逻辑,不过就是简单的三层逻辑:

D层:在D层写分页的查询数据,这里需要强调的是怎么查?通过对牛腩视频的理解,就需要两个参

数:startRecord与endRecord,并且需要返回datatable表。

public DataTable  Paging(int startrecord,int endrecord)
        {
            DataTable dt = new DataTable();
            //查询出新闻放在临时表temptbl中,然后从中进行查询并取出指定的数据值。
            string sql = "with temptbl as (select ROW_NUMBER () over (order by id desc )as 行号,* from news)select * from temptbl where 行号 between " + startrecord + " and " + endrecord;
            SqlParameter[] paras = new SqlParameter[]
            {
                new SqlParameter ("@startrecord",startrecord ),
                new SqlParameter ("@endrecord",endrecord )
            };
            dt = sqlhelper.ExecuteQuery(sql, paras, CommandType.Text );
            
            return dt;
        }

B层:调用D层的分页方法:

public DataTable Paging(int startrecord, int endrecord)
        {
            return ndao.Paging(startrecord ,endrecord );
        }

U层:首先需要在界面引入AspnetPager这个控件,在服务端代码区设置分页的一些显示:

<webdiyer:AspNetPager ID="anp" runat="server" OnPageChanged="anp_PageChanged" FirstPageText ="首页" LastPageText ="尾页" NextPageText ="下页"  PageSize="5" >
</webdiyer:AspNetPager>
然后在客户端代码区设置具体的实现:

 protected void anp_PageChanged(object sender, EventArgs e)
        {
            //分页变量定义
            NewsManager nm = new NewsManager();
            DataTable temptbl = new DataTable();
            News n = new News();
            string id = n.Id;
            int startrecord;
            int endrecord;

            //分页显示
            anp.RecordCount = nm.SelectAll().Rows.Count;
            //给startrecord与endrecord赋初值
            startrecord = 0;
            endrecord = 0;
            //获取当前分页页码
            int i = anp.CurrentPageIndex - 1;
            //根据页面查询数据
            startrecord = 5 * i + 1;
            endrecord = startrecord + 4;
            repNews.DataSource = nm.Paging(startrecord, endrecord);
            repNews.DataBind();

        }
这里特别想强调的是变量“i”的获取值CurrentPageIndex。之前总是觉得用循环就行,但是出来的结果总是

第一条和最后一条,中间的数据始终出不来。所以跟师傅一起探讨了一下,发现我的循环变量用的不对。既然想要达

到分页的效果,那么就必须得将界面上的页码运用起来才行,不然页面上的页面就没有起到作用。所以我把循环去

掉,通过界面页码的切换,达到对当页数据的更新。


总结是一切收获的前提


完成了牛腩,还是挺有自豪感的。半个月的时间,虽然期间因为一些事延期了几天,但是总体来说,对自

己的效率还是比较满意的。特别是经历过个人版的机房重构之后,更加的清楚自己的一些问题在哪,在牛腩中也算是

得到了较大的改善了。现在说说我的一些变化:


        时间管理

在敲个人版机房的时候特别没有时间观念,延期协商一次一次又一次。而且时间拖的越长自己越是不想动

它,所以造成机房是一拖再拖。

在牛腩中,我把整体的时间都定的较为紧张,锻炼自己的对资料已经自己时间的一些把握。另外就是把计

划严格执行,杜绝自己的偷懒心理。


心态转变


开始牛腩就相当于开始的B/S,一个新的阶段,所以在完成起来特别的带劲。加上牛腩视频真的是太搞笑

了,几次看视频都能笑出声,因为喜欢这个视频,所以愿意继续往下看。63集看下来,说实话,真的跟看电视剧似

的,基本上没怎么吃力,期间调试代码都觉得是在添乐。


毕业季感想


在面临毕业的这一刻,在别人迷茫、苦恼、无措的时候。我在坚定信念的学习,并且拥有家里精神+经济的

支持,还有顺便参加的自学考试。都让我觉得自己真的是在为自己的将来打拼,自己在为自己努力,我很享受现在的

生活,很感谢现在的自己做出的选择。因为我们这群人注定跟别人不一样!


你可能感兴趣的:(新闻,发布)