Asp.net PageDataSource为DataList分页

注:封装数据绑定控件(如 System.Web.UI.WebControls.DataGrid、System.Web.UI.WebControls.GridView、System.Web.UI.WebControls.DetailsView
    //     和 System.Web.UI.WebControls.FormView)的与分页相关的属性,以允许该控件执行分页操作。无法继承此类。
DataList
public DataTable GetDataSet(string sql)
    {
        SqlConnection conn = this.getconn();
        SqlDataAdapter sdr = new SqlDataAdapter(sql, conn);
        DataSet rs = new DataSet();
        sdr.Fill(rs);
        return rs.Tables[0];
    }
    public PagedDataSource PageDataListBind(string sql, int currentPage, int PageSize)
    {
        PagedDataSource pds = new PagedDataSource();
        pds.DataSource = GetDataSet(sql).DefaultView;
        pds.AllowPaging = true;
        pds.PageSize = PageSize;
        pds.CurrentPageIndex = currentPage - 1;
        return pds;
    }

DB db = new DB();
    PagedDataSource pds = new PagedDataSource();
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {

            bind();
        }
    }

    public void bind()
    {
        pds = db.PageDataListBind("select * from tb_word",Convert.ToInt32(lblCurrentPage.Text),2);
        lnkBtnFirst.Enabled = true;
        lnkBtnLast.Enabled = true;
        lnkBtnPrevious.Enabled = true;
        lnkBtnNext.Enabled = true;
        if (lblCurrentPage.Text == "1")
        {
            lnkBtnFirst.Enabled = false;
            lnkBtnPrevious.Enabled = false;
        }
        if(lblCurrentPage.Text==pds.PageCount.ToString())
        {
            lnkBtnLast.Enabled = false;
            lnkBtnNext.Enabled = false;
        }
        lblSumPage.Text = pds.PageCount.ToString();
        DataList1.DataSource = pds;
        DataList1.DataKeyField = "ID";
        DataList1.DataBind();
    }

    protected void lnkBtnFirst_Click(object sender, EventArgs e)
    {
        lblCurrentPage.Text = "1";
        bind();
    }
    protected void lnkBtnPrevious_Click(object sender, EventArgs e)
    {
        lblCurrentPage.Text = (Convert.ToInt32(lblCurrentPage.Text) - 1).ToString();
        bind();
    }
    protected void lnkBtnNext_Click(object sender, EventArgs e)
    {
        lblCurrentPage.Text = (Convert.ToInt32(lblCurrentPage.Text) + 1).ToString();
        bind();
    }
    protected void lnkBtnLast_Click(object sender, EventArgs e)
    {
        lblCurrentPage.Text = lblSumPage.Text;
        bind();
    }

<form id="form1" runat="server">
    <div>
        <asp:DataList ID="DataList1" runat="server">
        <ItemTemplate>
            <table border="1">
                <tr>
                    <td>ID</td><td>标题</td><td>内容</td>
                </tr>
                <tr>
                    <td><%#Eval("ID") %></td>
                    <td><%#Eval("Title") %></td>
                    <td><%#Eval("Content") %></td>
                </tr>
            </table>
        </ItemTemplate>
        </asp:DataList>
        当前页码为[<asp:Label ID="lblCurrentPage" runat="server" Text="1"></asp:Label>]页
                总页码[<asp:Label
                    ID="lblSumPage" runat="server" Text="0"></asp:Label>]页
                <asp:LinkButton ID="lnkBtnFirst" runat="server" Font-Underline="False" OnClick="lnkBtnFirst_Click" > 第一页 </asp:LinkButton>
                <asp:LinkButton ID="lnkBtnPrevious" runat="server" Font-Underline="False" OnClick="lnkBtnPrevious_Click" > 上一页 </asp:LinkButton>
                <asp:LinkButton ID="lnkBtnNext" runat="server" Font-Underline="False" OnClick="lnkBtnNext_Click" > 下一页 </asp:LinkButton>
                <asp:LinkButton ID="lnkBtnLast" runat="server" Font-Underline="False" OnClick="lnkBtnLast_Click"> 末一页 </asp:LinkButton>
    </div>
    </form>

转载自:http://blog.sina.com.cn/s/blog_83a4857e01011tyw.html

时间: 2024-08-27 05:10:04

Asp.net PageDataSource为DataList分页的相关文章

ASP.NET MVC 简单的分页思想与实现

, 作为一个程序猿,数据分页是每个人都会遇到的问题.解决方案更是琳琅满目,花样百出.但基本的思想都是差不多的. 下面给大家分享一个简单的分页器,让初学者了解一下最简单的分页思想,以及在ASP.NET MVC中的简单实现与应用. 一,定义分页器类 在ASP.net MVC中,分页的数据源可能是各种不同的类型,所以最好使用泛型来定义. public class PagingHelper<T> 二,基本三要素 实现分页人所共知的三个基本属性: DataSource:数据源,要知道数据源共计多少条数据

ASP.NET MVC- 使用PageList.Mvc分页

ASP.NET MVC中进行分页的方式有多种,在NuGet上有提供使用PagedList.PagedList.Mvc进行分页. 1. 通过NuGet引用PagedList.Mvc 在安装引用PagedList.Mvc的同时会安装引用PagedList. 1.看一下Controller页面的代码,最后就简单的一句,将List数据ToPagedList返回过去就可以了.原来爱怎么分页可以怎么分页. //引用 using PagedList; namespace MvcApplication1.Con

asp.net GridView 表格之分页显示与翻页功能及自定义翻页页码样式

一.实现分页功能  GridView实现分页只需要在属性框中将AllowPaging(是否在GridView中打开分页功能)设置为true即可 有时打开分页后不显示页码 确保AllowCustomPaging(是否打开对自定义分页的支持)为False即可 二.实现翻页功能  如何点击页码实现翻页呢? 在属性框中事件选择设置PageIndexChanging(在Grid View的当前索引页正在更改事触发)这一事件 后台代码如下 /// <summary> /// 翻页操作 /// 在GridV

ASP.NET中实现Ajax分页

在页面中指定一个div容器来接收动态生成的分页数据: 1 <div id="div_menu"> 2 </div> 使用jQuery来请求并处理Json格式数据: 1 //定义页码与页容量 2 var pageIndex = 1; 3 var pageSize = 15; 4 var pageCount = 0; 5 var recordCount = 0; 6 AjaxGetData(pageIndex, pageSize); 7 //Ajax获取数据 8 f

ASP.NET MVC利用PagedList分页(二)PagedList+Ajax+JsRender

(原文) 昨天在ASP.NET MVC利用PagedList分页(一)的 最后一节提到,一个好的用户体验绝对不可能是点击下一页后刷新页面,所以今天来说说利用Ajax+PagedList实现无刷新(个人绝对局部刷新更准确 些)的分页.其实在PagedList.Mvc中早已经为我们提供好了Ajax分页的各种东东,但是这里我要自己写下. 实现思想: 1.客户端发送Ajax请求.2.服务器端响应请求并将响应结果回传给客户端.3.客户端接收响应结果并进行数据绑定. 实现方案: 大多数人都知道这个思想,但是

asp.net实现access数据库分页

最近在编程人生上看到篇文章很有感触,觉得人生还是要多奋斗.今天给大家贡献点干货. <divclass="page"id="ctrlRecordPage"> 总<asp:LabelID="Zpage"runat="server"Text="1"></asp:Label>页/ <asp:LabelID="Zcount"runat="serv

asp.net mvc easyui datagrid分页

提到 asp.net mvc 中的分页,很多是在用aspnetpager,和easyui datagrid结合的分页却不多,本文介绍的是利用easyui 中默认的分页控件,实现asp.net mvc分页. easyui datagrid分页要求数据采用的格式 :{total:2,row:[]}, 在asp.net mvc 中服务器端只要返回这符合这样格式的json数据就好. 页面前端: 服务器端: 附带asp.net 结合 easyui 增删改查的例子: asp.net mvc easyui d

asp.net学习之DataList控件

asp.net学习之DataList控件 DataList控件与Repeater控件一样由模板驱动,与Repeater控件不同的是: DataList控件默认输出是一个HTML表格.DataList在输出时已经在相应的模板上套上了表格标签,而Repeater则是模板是什么样,输出就是什么样. 1. DataList显示数据 例1:使用DataList显示数据 <asp:DataList ID="DataList1" runat="server" DataSou

ASP.NET easyUI--datagrid 通过ajax请求ASP.NET后台数据的分页查询

js前台对datagrid的定义代码,如下 mygrid = $('#mytable').datagrid({ fit: true, //自动大小 height: 'auto', rownumbers: true, //行号 fitColumns: true, collapsible: true, //是否可折叠的 loadMsg: '数据装载中......', singleSelect: true, //单行选取 pagination: true //显示分页 // columns: [[]]