致力于技术进步

专注于编程艺术

博客园 首页 新随笔 联系 订阅 管理

页面代码:

<table cellpadding="0" cellspacing="0" border="0" width="755" style=" width:755px; word-break:break-all;" class="title_huati">
                <tr>
                <td align=left style="font-size:12px;">
                    共 <asp:Label ID="lblTotalCount" runat="server"></asp:Label> 条记录--第 <asp:Label ID="lblPageIndex" runat="server"></asp:Label> 页--共 <asp:Label ID="lblPageCount" runat="server"></asp:Label> 页
                </td>
                <td align=right style="font-size:12px;">
                <asp:LinkButton ID="btnFirst" runat="server" OnClick="btnFirst_Click">首页</asp:LinkButton>
                <asp:LinkButton ID="btnPrevious" runat="server" OnClick="btnPrevious_Click">上一页</asp:LinkButton>
                <asp:LinkButton ID="btnNext" runat="server" OnClick="btnNext_Click">下一页</asp:LinkButton>
                <asp:LinkButton ID="btnLast" runat="server" OnClick="btnLast_Click">尾页</asp:LinkButton>
                <asp:DropDownList ID="drpPage" runat=server AutoPostBack=true OnSelectedIndexChanged="drpPage_SelectedIndexChanged"></asp:DropDownList>
                &nbsp;&nbsp;&nbsp;
                </td>
               
                </tr>
                </table>

 

 

 

后台代码:

 

//数据源对象
        public static PagedDataSource pds = new PagedDataSource();

        protected void Page_Load(object sender, EventArgs e)
        {
            if (!this.Page.IsPostBack)
            {
                pds.AllowPaging = true;//允许分页
                pds.CurrentPageIndex = 0;//当前页的索引设置为0,即第一页的索引为0
                pds.PageSize = 8;//单页显示的项数
                RefreshStatus();
            }
            //分页绑定班级通讯录
            //

            if (!this.Page.IsPostBack)
            {
                FillPager(pds.PageCount + 1);
            }
        }

 

 

 //流程:1.先在页面加载的时候,把PagedDataSource的参数设置好(如单页显示多少条纪录)
        //      2.pds.DataSource = AdminManager.GetAllAdmins();这样就变成有分页的数据了,然后再和DataList绑定就好了
        private void RefreshStatus()
        {
            DataSet ds = new DataSet();

            if (CurentUser.TXLClassID != null)//合法用户具有班级信息
            {
                if (Session["dsTXL"] == null)//本地缓存数据不存在
                {
                    ds = EduServiceHelper.GetStusByClassidNum(CurentUser.TXLClassID.ToString(), "50");//检索数据库
                    Session["dsTXL"] = ds;//设置本地缓存数据
                    Session["ClassId"] = CurentUser.TXLClassID;//设置本地缓存数据
                }
                if (CurentUser.TXLClassID != Session["ClassId"].ToString())//切换了班级
                {
                    ds = EduServiceHelper.GetStusByClassidNum(CurentUser.TXLClassID.ToString(), "50");//检索数据库
                    Session["dsTXL"] = ds;//设置本地缓存数据
                    Session["ClassId"] = CurentUser.TXLClassID;//设置本地缓存数据
                }
                else
                    ds = (DataSet)Session["dsTXL"];//本地缓存数据存在,直接取本地缓存数据

                //分页绑定数据
                if (ds.Tables["CallResult"].Rows[0][0].ToString() == "0" && ds.Tables["ds"] != null)//
                {
                   
                    pds.DataSource = ds.Tables[0].DefaultView;
                    gv_class_message.DataSource = pds;
                    gv_class_message.DataBind();
                    this.lblCount.Text = ds.Tables[0].Rows.Count.ToString();
                    this.lblTotalCount.Text = ds.Tables[0].Rows.Count.ToString();

                    btnFirst.Enabled = !pds.IsFirstPage;//判断当前页是不是第一页,如果是,那么"第一页"的按钮就应该不可用
                    btnPrevious.Enabled = !pds.IsFirstPage;//判断当前页是不是第一页,如果是,那么"上一页"的按钮就应该不可用
                    btnNext.Enabled = !pds.IsLastPage;
                    btnLast.Enabled = !pds.IsLastPage;
                    lblPageIndex.Text = Convert.ToString(pds.CurrentPageIndex + 1);//如果当前页是第一页,pds.CurrentPageIndex的值会为0,所以要+1
                    lblPageCount.Text = pds.PageCount.ToString();

                    if (this.drpPage.Items.Count > 0)
                    {
                        this.drpPage.SelectedValue = this.lblPageIndex.Text.ToString();
                    }
                }
            }
        }

 

protected void btnFirst_Click(object sender, EventArgs e)
        {
            pds.CurrentPageIndex = 0;//如果是第一页,就把pds.CurrentPageIndex参数设置为0,然后在绑定
            RefreshStatus();
        }

        protected void btnLast_Click(object sender, EventArgs e)
        {
            pds.CurrentPageIndex = pds.PageCount - 1;
            RefreshStatus();
        }

        protected void btnNext_Click(object sender, EventArgs e)
        {
            pds.CurrentPageIndex += 1;
            RefreshStatus();
        }

        protected void btnPrevious_Click(object sender, EventArgs e)
        {
            pds.CurrentPageIndex -= 1;
            RefreshStatus();
        }

        protected String getValue()
        {
            return String.Empty;
        }

        protected void drpPage_SelectedIndexChanged(object sender, EventArgs e)
        {
            pds.CurrentPageIndex = Convert.ToInt32(this.drpPage.SelectedValue) - 1;
            RefreshStatus();
        }

        protected void FillPager(Int32 pageindex)
        {
            this.drpPage.Items.Clear();
            for (int i = 1; i < pageindex; i++)
            {
                this.drpPage.Items.Add(new ListItem(i.ToString(), i.ToString()));
            }
        }


 

 

posted on 2010-04-15 11:04  stephen&amp;#183;周  阅读(372)  评论(1)    收藏  举报