PagedDataSource对象实现DataList分页

一、说明

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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值