zoukankan      html  css  js  c++  java
  • Repeater分页控件

     每次用Repeater控件,总会牵扯到分页问题,索性自己重写一个Repeater控件,将分页功能集成进去,以后就不会这么麻烦了。废话少说贴上Code:

              新建一个ASP.NET 服务器控件项目,添加一个Repeater类,继承System.Web.UI.WebControls.Repeater,然后开始在这个Repeater类里面写代码。

              1、首先设置一下DefaultProperty的值

              DefaultProperty:[DefaultProperty("Text"), ToolboxData("<!--Repeater Begin --><{0}:Repeater ID=\"rpList\" runat=server EnableViewState=\"false\" ><HeaderTemplate></HeaderTemplate><ItemTemplate></ItemTemplate><FooterTemplate></FooterTemplate></{0}:Repeater><!--Repeater End -->")],这里就写Repeater 最长用的几个东西,大家可以根据自己需要进行扩展。

    2、添加几个分页要用的属性

    private int _recordcount = 0;
            private int _pagesize = 0;
            private string _pagelink = "";
            private int _currentpage = 1;
    [Bindable(true), Category("Data"), DefaultValue("1"), Description("记录总数")]
            public int RecordCount
            {
                get
                {
                    return _recordcount;
                }
    
                set
                {
                    _recordcount = value;
                }
            }
    
            [Bindable(true), Category("Data"), DefaultValue("1"), Description("每页显示记录数")]
            public int PageSize
            {
                get
                {
                    return _pagesize;
                }
    
                set
                {
                    _pagesize = value;
                }
            }
    
            [Bindable(true), Category("Data"), DefaultValue(""), Description("当前页链接")]
            public string PageLink
            {
                get
                {
                    return _pagelink;
                }
    
                set
                {
                    _pagelink = value;
                }
            }
    
            [Bindable(true), Category("Data"), DefaultValue("1"), Description("当前页")]
            public int CurrentPage
            {
                get
                {
                    return _currentpage;
                }
    
                set
                {
                    _currentpage = value;
                }
            }
    
    

     3、添加输出到HTML的方法

     7、后台代码

     

     void BindPage() 
            {
                this.rpList.PageSize = 10;
                this.rpList.RecordCount = IPInfo_BLL.getDatabyCount();
                this.rpList.PageLink = ConfigurationManager.AppSettings["PageUrl1"].ToString();
                this.rpList.CurrentPage = Request.QueryString["page"] == null ? 1 : int.Parse(Request.QueryString["page"]);
                int SIndex = (this.rpList.CurrentPage-1) * 10 + 1;
                this.rpList.DataSource = IPInfo_BLL.getDatabyIndex(SIndex, this.rpList.PageSize);
                this.rpList.DataBind();
            }
           //分页
            public static IQueryable getDatabyIndex(int startIndex,int PageSize)
            {
                var query = from p in datacontext.IPInfo
                            select new
                            {
                                p.IPid,
                                p.IPFrom,
                                p.IPTo,
                                p.IPLocation,
                                p.IPCity,
                                p.IPToNumber,
                                p.IPFromNumber
                            };
    
                return query.Skip(startIndex).Take(PageSize);
    
            }
    
    

        8、看看最后效果

                当然了,最后样式不满意,可以自己修改吗,我这里只是简单的写下,以后根据需要扩展。

     4、在项目中添加这个控件的引用

                 /Files/yangtongnet/SRepeater.rar

                 5、在页面中添加命名空间

                 <%@ Register Assembly="ServerControl" Namespace="ServerControl" TagPrefix="SControl" %>

                 6、控件的客户端代码

    Repeater分页控件:
        <!--Repeater Begin -->
        <SControl:Repeater ID="rpList" runat="server" EnableViewState="false">
            <HeaderTemplate>
            <table class="tby">
            <tr>
                 <th>ID</th>
                 <th>IPFrom</th>
                 <th>IPTo</th>
                 <th>IPLocation</th>
                 <th>City</th>
                 <th>IPToNumber</th>
                 <th>IPFromNumber</th>
              </tr>
            </HeaderTemplate>
            <ItemTemplate>
            <tr>
             <td><%#Eval("IPid")%></td>
             <td><%#Eval("IPFrom")%></td> 
             <td><%#Eval("IPTo")%></td> 
             <td><%#Eval("IPLocation")%></td>
             <td><%#Eval("IPCity") %></td>  
             <td><%#Eval("IPToNumber")%></td>  
             <td><%#Eval("IPFromNumber")%></td>
             </tr>
            </ItemTemplate>
            <FooterTemplate>
            </table>
            </FooterTemplate>
        </SControl:Repeater>
        <!--Repeater End -->
    

  • 相关阅读:
    AppCompatActivity、ActionBarActivity、FragmentActivity和Activity的区别
    Android-Async-Http
    如何在Android studio中同时打开多个工程?
    Multi-threading Android Apps for Multi-core Processors – Part 1 of 2
    Performance Tips
    容器生态系统
    Docker生态不会重蹈Hadoop的覆辙
    Docker生态会重蹈Hadoop的覆辙吗?
    国外牛人的五个Kubernetes学习建议
    Kubernetes基本概念
  • 原文地址:https://www.cnblogs.com/Leo_wl/p/1759908.html
Copyright © 2011-2022 走看看