牛腩新闻发布系统 (五)如何让你的文章学会分页

本文深入探讨了软件开发中真分页技术的实现方法,包括存储过程编写、D层调用、Web层控件配置及B层代码对接,旨在提高大数据量情况下的页面加载效率。

分页

在软件开发的过程中,那些最常见的东西我们常常会忽略。例如这个"分页"。“分页”也有“真假”之说。

 

假分页:从数据库中一次性选择所有数据,再将所有数据根据每页显示多少条记录进行分类。其缺点是在数据比较多时,加载时间会长,优点使可以减少和后台的交互次数。

真分页:只从数据库中选择当前页的数据,跳转下一页是再次读取。缺点是与后台交互次数比较多,优点使每次加载速度比较快。

 

接下来笔者就以真分页为例,实现下图新闻的分页

 

 

实现分页

 <1>编写存储过程。分页针对的是查询到的数据,所以这里涉及到数据库的操作。按照如下代码,新建你的存储过程

 

 

<2> 在D层调用存储过程。笔者在D层NewsDAO文件中编写代码,目的是实现显示出的新闻内容分页

        # region 显示新闻分页
        /// <summary>
        /// 新闻分页显示
        /// </summary>
        /// <param name="start">开始</param>
        /// <param name="end">结束</param>
        /// <returns></returns>
        public DataTable SelectPage(int start, int end)
        {
            DataTable dt = new DataTable();
            string cmdText = "procNewsSelectPage";
            SqlParameter[] paras = new SqlParameter[] {
                new SqlParameter("@start",start),
                new SqlParameter("@end",end),
            };
            dt = sqlhelper.ExecuteQuery(cmdText, paras, CommandType.StoredProcedure);
            return dt;
        }
        #endregion

 

<3>在Web层中添加分页控件AspNetPager,并完善此控件代码。笔者在newsmanager.aspx文件中添加的代码

            <webdiyer:AspNetPager ID="anp" runat="server" FirstPageText="首页" LastPageText="尾页" NextPageText="下一页" PrevPageText="上一页" OnPageChanged="anp_PageChanged" PageSize="5" AlwaysShow="true">
            </webdiyer:AspNetPager>

 

 

<4>B层对应代码。笔者写在了B层NewsManager文件里

        #region 新闻分页
        //分页
        public DataTable SelectNewsByPage(int start, int end)
        {
            return ndao.SelectPage(start, end);
        }
        #endregion

 

<5>在Web层新闻管理newsmanager.aspx.cs后台编写代码。由于后台文件中其他功能已写入代码,笔者只列出分页功能需要加的代码

        protected void Page_Load(object sender, EventArgs e)
        {
            UnobtrusiveValidationMode = UnobtrusiveValidationMode.None;

            //判断session里面是否存在管理员
            if (Session["admin"] != null && Session["admin"].ToString() == "niunan")
            {
                //已登录
                if (!Page.IsPostBack)
                {
                    DataTable dt = new DataTable();
                    dt = new NewsManager().SelectAll();
                    anp.RecordCount = dt.Rows.Count;
                    BindNews();
                }
            }
            else
            {
                //未登录
                Response.Redirect("login.aspx");
            }
        }

        //删除按钮
        protected void lbtnDel_Click(object sender, EventArgs s)
        {
            string id = ((LinkButton)sender).CommandArgument;
            bool b = new NewsManager().Delete(id);
            if (b)
            {
                BindNews();
            }
            else
            {
                Page.ClientScript.RegisterStartupScript(Page.GetType(), "message", "<script language='javascript' defer>alert('未知原因导致删除失败!');</script>");
            }
        }


        #region 绑定新闻列表
        private void BindNews()
        {
            int start = anp.StartRecordIndex;
            int end = anp.EndRecordIndex;
            repNews.DataSource = new NewsManager().SelectNewsByPage(start,end);
            repNews.DataBind();
        }
        #endregion

        protected void anp_PageChanged(object sender, EventArgs e)
        {
            BindNews();
        }

 

<6>重新生成下文件,分页功能便出来了~

 

具有多种最大功率点跟踪(MPPT)方法的光伏发电系统(P&O-增量法-人工神经网络-模糊逻辑控制-粒子群优化)之使用粒子群算法的最大功率点追踪(MPPT)(Simulink仿真实现)内容概要:本文介绍了一个涵盖多个科研领域的综合性MATLAB仿真资源集合,重点聚焦于光伏发电系统中基于粒子群优化(PSO)算法的最大功率点追踪(MPPT)技术的Simulink仿真实现。文档还列举了多种MPPT方法(如P&O、增量电导法、神经网络、模糊逻辑控制等),并展示了该团队在电力系统、智能优化算法、机器学习、路径规划、无人机控制、信号处理等多个方向的技术服务能力与代码实现案例。整体内容以科研仿真为核心,提供大量可复现的Matlab/Simulink模型和优化算法应用实例。; 适合人群:具备一定电力电子、自动控制或新能源背景,熟悉MATLAB/Simulink环境,从事科研或工程仿真的研究生、科研人员及技术人员。; 使用场景及目标:①学习并实现光伏系统中基于粒子群算法的MPPT控制策略;②掌握多种智能优化算法在电力系统与自动化领域的建模与仿真方法;③获取可用于论文复现、项目开发和技术攻关的高质量仿真资源。; 阅读建议:建议结合提供的网盘资料,按照研究方向选取对应模块进行实践,重点关注Simulink模型结构与算法代码逻辑的结合,注重从原理到仿真实现的全过程理解,提升科研建模能力。
评论 29
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值