代码改变世界

发布一个未完善的分页DataList控件 -- PageDataList

2007-05-03 14:44  xiaosonl  阅读(1132)  评论(3编辑  收藏  举报

做了几个网站后,发现分页显示组件是复用最高的一个组件之一,于是用了一晚上时间写个分页DataList控件,很简陋,但是还是挺好用的.

使用方法:
1.引用PageDataList.dll组件.

2.在工具箱中添加这个组件,然后就可以直接拖进页面,像DataList一样使用(因为PageDataList就是继承DataList的).

3.下一步是编辑ItemTemplate和FooterTemplate模板,如下:

    <tb:PageDataList ID="pageDataList" runat="server" OnPageCreating="pageDataList_PageCreating" PageSize="3" RecordCount="10">
    
<ItemTemplate>
        
<div id="post">
        
<div id="title"><%Eval("Caption"%></div>
        
<div id="text"><%Eval("Text"%></div>
        
<div id="footer">Posted @<%Eval("AddDate"%> &nbsp;<%Eval("UserName"%></div>
        
</div>
    
</ItemTemplate>
    
<FooterTemplate>
        
<asp:HyperLink ID = "lnkFirstPage" Text = "第一页" runat = "server" />
        
<asp:HyperLink ID = "lnkPageUp" Text = "上一页" runat = "server" />
        
<asp:TextBox ID = "txtPageIndex" runat = "server" Width = "30px" Text = "1" />
        共
<asp:Label ID = "lblPageCount" runat = "server" /><asp:Label ID = "lblRecordCount" runat = "server" />条记录
        
&nbsp;每页<asp:Label ID = "lblPageSize" runat = "server" />条记录
        
<asp:HyperLink ID = "lnkPageDown" Text = "下一页"  runat = "server" />
        
<asp:HyperLink ID = "lnkLastPage" Text = "最后一页" runat = "server" />
    
</FooterTemplate>
    
</tb:PageDataList>

 ItemTemplate模板是自定义的,但是FooterTemPlate模板中必需要有相同ID,相同类型的控件存在.这会在以后慢慢改善.

4.最关键的一步,是要编写PageDataList的PageCreating事件代码,该事件有两个参数:pageIndex和pageSize,分别为当前页码和页大小,可使用这两个参数从数据访问层或业务逻辑层调用获取数据的方法,且必需返回一个Object,作为DataList的DataSource属性,如下:

    protected object pageDataList_PageCreating(int pageIndex, int pageSize)
    {
        
return GetPageData(pageIndex, pageSize);
    }


5.最后只要调用PageDataList.DataBind()方法就可以了.DataSource属性无需设置.

Demo以及完善版本这几天应该会放出的,五一过节先.

下载:
1.PageDataList(dll).rar

2.PageDataList(源代码).rar