zoukankan      html  css  js  c++  java
  • 分页(二)

    一、用a标签和HTML的input普通按钮

    <asp:Repeater ID="Repeater1" runat="server">
                <HeaderTemplate><ul></HeaderTemplate>
                <FooterTemplate></ul></FooterTemplate>
                <ItemTemplate>
                    <li><%# Eval("Name") %></li>
                </ItemTemplate>
            </asp:Repeater>
        </div>
            <a href="Default.aspx" runat="server" id="lnkPrev">
                <input id="Button1" type="button" value="上一页" /></a>
            <a href="Default.aspx" runat="server" id="lnkNext">
                <input id="Button2" type="button" value="下一页" /></a>
    public partial class _Default : System.Web.UI.Page
    {
        private MyDBDataContext _Context = new MyDBDataContext();
        private const int PAGESIZE = 3;
        private int _PageNo = 1;  //当前的页号
        //获取总页数
        public int GetPageCount()
        {
            //取总行数
            int rowsCount = _Context.Car.Count();
            //算出总页数
            int pageCount = (int)Math.Ceiling( 1.0*rowsCount / PAGESIZE);
    
            return pageCount;
        }
        public List<Car> GetPagedCar()
        {
            var query = _Context.Car.Skip(PAGESIZE*(_PageNo-1)).Take(PAGESIZE);
            return query.ToList();
        }
    
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                if (Request["pn"] != null)
                {
                    _PageNo = Convert.ToInt32(Request["pn"]);
                }
                Repeater1.DataSource = GetPagedCar();
                Repeater1.DataBind();
    
                if (_PageNo == 1)
                {
                    lnkPrev.HRef = "Default.aspx?pn=1";
                }
                else
                {
                    lnkPrev.HRef = "Default.aspx?pn=" + (_PageNo - 1).ToString();
                }
                if (_PageNo == GetPageCount())
                {
                    lnkNext.HRef = "Default.aspx?pn=" + GetPageCount().ToString();
                }
                else
                {
                    lnkNext.HRef = "Default.aspx?pn=" + (_PageNo + 1).ToString();
                }
    
            }
        }
    }

    二、用DropDownList和普通按钮

    <form id="form1" runat="server">
        <div>
         <asp:Repeater ID="Repeater1" runat="server">
                <HeaderTemplate><ul></HeaderTemplate>
                <FooterTemplate></ul></FooterTemplate>
                <ItemTemplate>
                    <li><%# Eval("Name") %></li>
                </ItemTemplate>
            </asp:Repeater>
        </div>
            <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="上一页" />
            <asp:Button ID="Button2" runat="server" OnClick="Button2_Click" Text="下一页" />
            <asp:DropDownList ID="PageList" runat="server" AutoPostBack="True" OnSelectedIndexChanged="PageList_SelectedIndexChanged">
            </asp:DropDownList>
        &nbsp;一共<asp:Label ID="lblAll" runat="server" Font-Bold="True" ForeColor="Red"></asp:Label>
            页,当前是第<asp:Label ID="lblNow" runat="server" Font-Bold="True" ForeColor="Red"></asp:Label></form>
    public partial class Default2 : System.Web.UI.Page
    {
        private MyDBDataContext _Context = new MyDBDataContext();
        private const int PAGESIZE = 3;
        private int _PageNo = 1;  //当前的页号
        //获取总页数
        public int GetPageCount()
        {
            //取总行数
            int rowsCount = _Context.Car.Count();
            //算出总页数
            int pageCount = (int)Math.Ceiling(1.0 * rowsCount / PAGESIZE);
    
            return pageCount;
        }
        //获取指定页面记录
        public List<Car> GetPagedCar()
        {
            _PageNo = Convert.ToInt32( PageList.SelectedValue);
            var query = _Context.Car.Skip(PAGESIZE * (_PageNo - 1)).Take(PAGESIZE);
            return query.ToList();
        }
    
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                FillPageList();
                ShowCars();
            }
        }
    
        private void ShowCars()
        {
            Repeater1.DataSource = GetPagedCar();
            Repeater1.DataBind();
    
            //给当前页和一共几页赋值
            lblNow.Text = PageList.SelectedValue;
            lblAll.Text = PageList.Items.Count.ToString();
        }
        //在下拉列表里面获取总页数
        private void FillPageList()
        {
            PageList.Items.Clear();
    
            int pageCount = GetPageCount();
            for (int i = 1; i <= pageCount; i++)
            {
                ListItem li = new ListItem(i.ToString(), i.ToString());
                PageList.Items.Add(li);
            }
        }
        //点击下拉列表里的数字
        protected void PageList_SelectedIndexChanged(object sender, EventArgs e)
        {
            ShowCars();
        }
        //上一页
        protected void Button1_Click(object sender, EventArgs e)
        {
            if (PageList.SelectedIndex == 0)
            {
                return;
            }
            PageList.SelectedIndex--;
            ShowCars();
        }
        //下一页
        protected void Button2_Click(object sender, EventArgs e)
        {
            if (PageList.SelectedIndex == GetPageCount() - 1)
            {
                return;
            }
    
            PageList.SelectedIndex++;
            ShowCars();
        }
    }
  • 相关阅读:
    第二周学习总结
    调查问卷
    第五周学习总结
    基于DevExpress的项目窗体统一换肤
    一个Linq to Sql 的关联小问题,搞死人
    VC中类型转换(转载)
    保证一个程序只运行一次
    给所有的Control添加发送键盘事件Tab事件,实现回车键自动跳转到下一个控件[基于Shark Xu]
    遍历进程
    CSS Friendly ASP.NET 2.0 Control Adapters (Beta 2.0)在处理URL时的一个Bug
  • 原文地址:https://www.cnblogs.com/qianxiaojinnian/p/4738695.html
Copyright © 2011-2022 走看看