PagedDataSource对象实现DataList分页

来源:互联网 发布:百度云盘mac版怎么用 编辑:程序博客网 时间:2024/06/12 01:24

一、说明

PagedDataSource对象是用于对数据源分页的类,使用它可以更灵活的控制分页效果以及布局。在GridView控件中,提供了分页功能,而在DataList中,没有专门的分页功能,这时,可以使用PagedDataSource对象。

二、分页功能的前台布局(测试)

<asp:DataList ID="dlData" runat="server" RepeatColumns="4">    <ItemTemplate>       <asp:Label ID="lblName" runat="server" Text='<%# DataBinder.Eval(Container.DataItem,"username") %>'/>       <asp:Label ID="lblTime" runat="server" Text='<%# DataBinder.Eval(Container.DataItem,"pwd") %>'/>    </ItemTemplate></asp:DataList><asp:LinkButton ID="linkBtnPre" OnCommand="IndexChanging" CommandArgument="pre" runat="server">上一页></asp:LinkButton><asp:LinkButton ID="linkBtnNext" OnCommand="IndexChanging" CommandArgument="next" runat="server">下一页</asp:LinkButton>
三、分页功能的后台代码

namespace DataList分页{    public partial class index : System.Web.UI.Page    {        protected void Page_Load(object sender, EventArgs e)        {            if (!IsPostBack)            {                ViewState["pageindex"] = "0";                BindData();            }        }        private void BindData()        {            string strSql = "server=.;database=post;uid=sa;pwd=123";            SqlConnection conn = new SqlConnection(strSql);            conn.Open();            SqlCommand com = new SqlCommand();            com.Connection = conn;            com.CommandType = CommandType.Text;            string str = "select * from userInfo";   //一个测试表(username,pwd)            com.CommandText = str;            SqlDataAdapter da = new SqlDataAdapter(com);            DataTable dt = new DataTable();            da.Fill(dt);            if (dt != null && dt.Rows.Count > 0)            {                PagedDataSource pageDs = new PagedDataSource();  //允许分页的一个数据源类                pageDs.DataSource = dt.DefaultView;  //DefaultView表示用于排序、筛选、搜索、编辑和导航的 DataTable 的可绑定数据的自定义视图。                pageDs.AllowPaging = true;                pageDs.PageSize = 2;                pageDs.CurrentPageIndex = int.Parse(ViewState["pageindex"].ToString());                if (!pageDs.IsFirstPage)                {                    linkBtnPre.Visible = true;                }                else                {                    linkBtnPre.Visible = false;                }                if (!pageDs.IsLastPage)                {                    linkBtnNext.Visible = true;                }                else                {                    linkBtnNext.Visible = false;                }                dlData.DataSource = pageDs;                dlData.DataBind();            }        }        protected void IndexChanging(object sender, EventArgs e)        {            string strCommand = ((LinkButton)sender).CommandArgument.ToString();            int pageindex = int.Parse(ViewState["pageindex"].ToString());            if (strCommand == "pre")            {                pageindex = pageindex - 1;            }            else            {                pageindex = pageindex + 1;            }            ViewState["pageindex"] = pageindex;            BindData();        }    }}



0 0
原创粉丝点击