.NET中的repeater简介及分页效果-阿里云开发者社区

开发者社区> swjian1997> 正文

.NET中的repeater简介及分页效果

简介:   Repeater控件是一个数据绑定容器控件,它能够生成各个项的列表,并可以使用模板定义网页上各个项的布局。当该页运行时,该控件为数据源中的每个项重复此布局。     配合模板使用repeater控件    若要使用repeater控件,需创建定义控件内容布局的模板。
+关注继续查看

  Repeater控件是一个数据绑定容器控件,它能够生成各个项的列表,并可以使用模板定义网页上各个项的布局。当该页运行时,该控件为数据源中的每个项重复此布局。

    配合模板使用repeater控件

   若要使用repeater控件,需创建定义控件内容布局的模板。模板可以包含标记和控件的任意组合。如果未定义模板,或者模板都不包含元素,则当应用程序运行时,该控件不显示在页面上。

     ItemTemplate : 含要为数据源中每个数据项都要呈现一次的 HTML 元素和控件。  
      AlternatingItemTemplate : 对交替数据项进行格式设置(包含要为数据源中每个数据项都要呈现一次的 HTML 元素和控件。通常,可以使用此模板为交替项创建不同的外观,例如指定一种与在ItemTemplate中指定的颜色不同的背景色)。 
      SeparatorTemplate : 对分隔符进行格式设置(包含在每项之间呈现的元素。)。 
      HeaderTemplate : 对页眉进行格式设置(包含在列表的开始处分别呈现的文本和控件。)。 
      FooterTemplate : 对页脚进行格式设置(包含在列表的结束处分别呈现的文本和控件。)。
     

 

 

Repeater分页效果如下:

前台代码:

  <body>
        <asp:Repeater ID="Repeater1" runat="server">
            <HeaderTemplate>
                <p  style="background-color:#988c6e;width:400px;padding-top:5px;padding-bottom:5px;margin-left:30px;margin-top:30px;border-radius:5px;color:#fff;font-weight:bold;"><span style="padding-left:30px;">用户名</span><span style="padding-left:100px;">注册时间</span><span style="padding-left:90px;">访问量</span></p>
                <table style="margin-left:30px;margin-top:30px;">
             </HeaderTemplate>
            <ItemTemplate>
                <tr>
                    <td  style="width:120px;text-align:left; padding-left:20px;"><%#Eval("Username") %></td>
                    <td  style="width:170px;text-align:left; "><%#Eval("RegistrationTime") %></td>
                    <td  style="width:50px;text-align:left; "><%#Eval("AccessAmount") %></td>
                </tr>
                <tr>
                    <td colspan="3" style="border-bottom:1px inset #C0D9D9;padding-top:7px;"></td>
                </tr>
            </ItemTemplate>
            <FooterTemplate>
                </table>
            </FooterTemplate>
        </asp:Repeater> 
        <div style="margin-left:50px;">
            <div style="margin:0 auto; margin-top:50px;border:1px solid #fff;font-size:16px;font-family:"microsoft yahei","宋体";">
                <a><div style="border:1px solid #000; width:60px; float:left; margin:5px;text-align:center;"><a style="color:#000"><asp:Label  runat ="server" ID="zong"> </asp:Label></a></div></a>
                <a><div style="border:1px solid #000; width:60px; float:left;margin:5px;text-align:center;"><a style="color:#000"><asp:Label runat ="server" ID="dangqian"> </asp:Label></a></div></a>
                <a><div style="border:1px solid #000; width:40px; float:left;margin:5px;text-align:center;"> <a style="color:#000"><asp:hyperlink id="first" runat="server" style="color:#000">首页</asp:hyperlink></a></div></a>
                <a><div style="border:1px solid #000; width:60px; float:left;margin:5px;text-align:center;"><a style="color:#000"><asp:hyperlink id="lnkPrev" runat="server" style="color:#000">上一页</asp:hyperlink></a></div></a>
                <a><div style="border:1px solid #000; width:60px; float:left;margin:5px;text-align:center;"><a style="color:#000"><asp:hyperlink id="lnkNext" runat="server" style="color:#000">下一页</asp:hyperlink></a></div></a>
                <a><div style="border:1px solid #000; width:40px; float:left;margin:5px;text-align:center;"> <a style="color:#000"><asp:hyperlink id="end" runat="server" style="color:#000">尾页</asp:hyperlink></a></div></a>
            </div>  
        </div>  
    </body>

后台代码:

     protected void Page_Load(object sender, EventArgs e)
        {
            if(!Page.IsPostBack)
            {
                getUsers();
            }
        }
        private void getUsers()
        {
            List<Users1> list = new AdminManager().QueryUsers();    
            PagedDataSource pag = new PagedDataSource();
            pag.AllowPaging = true;//        设置允许分页
            pag.PageSize = 10;  //        每页显示为3行
            pag.DataSource = list;  //   模板绑定数据源  
            zong.Text = pag.PageCount.ToString(); //        显示总共页数
            int CurrentPage;
            //        请求页码为不为null设置当前页,否则为第一页
            if (Request.QueryString["Page"] != null)
            {

                CurrentPage = Convert.ToInt32(Request.QueryString["Page"]);
            }
            else
            {
                CurrentPage = 1;
            }
            if (Request.QueryString["PageSize"] != null)
            {
                pag.PageSize = Convert.ToInt32(Request.QueryString["PageSize"]);
            }
            else
            {
                pag.PageSize = 10;
            }

            pag.CurrentPageIndex = CurrentPage - 1;  //   当前页所引为页码-1
            dangqian.Text = CurrentPage.ToString(); //        当前页
            if (!pag.IsFirstPage)
            {
                //            Request.CurrentExecutionFilePath为当前请求虚拟路径
                lnkPrev.NavigateUrl = Request.CurrentExecutionFilePath + "?Page=" + Convert.ToString(CurrentPage - 1);
            } 
            //   如果不是最后一页,通过参数Page设置下一页为当前页+1,否则不显示连接
            if (!pag.IsLastPage)
            {
                //    Request.CurrentExecutionFilePath为当前请求虚拟路径
                lnkNext.NavigateUrl = Request.CurrentExecutionFilePath + "?Page=" + Convert.ToString(CurrentPage + 1);
            }
            //首页
            first.NavigateUrl = Request.CurrentExecutionFilePath + "?Page=" + Convert.ToString(1);
            //尾页
            end.NavigateUrl = Request.CurrentExecutionFilePath + "?page=" + pag.PageCount.ToString(); 

            if (Convert.ToInt32(HttpContext.Current.Request["page"]) > pag.PageCount)
            {
               
                first.NavigateUrl = Request.CurrentExecutionFilePath + "?Page=" + Convert.ToString(1);
            }
this.Repeater1.DataSource = pag; this.Repeater1.DataBind(); }

如果不需要进行分页,可执行以下代码:

protected void Page_Load(object sender, EventArgs e)
{
  if(!Page.IsPostBack)
   {
     getUsers();
   }
}
private void getUsers()
{
  List<Users1> list = new AdminManager().QueryUsers(); 
   this.Repeater1.DataSource = list ;
   this.Repeater1.DataBind();
}

 

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
阿里云服务器怎么设置密码?怎么停机?怎么重启服务器?
如果在创建实例时没有设置密码,或者密码丢失,您可以在控制台上重新设置实例的登录密码。本文仅描述如何在 ECS 管理控制台上修改实例登录密码。
8667 0
【开源】QuickPager ASP.NET2.0分页控件V2.0.0.4 增加了几个分页算法
================================ 欢迎转载,但是请注明出处。本文出自博客园 。谢谢合作! ================================                最近忙一个项目,没有太多的时间来升级分页控件。
821 0
阿里云服务器端口号设置
阿里云服务器初级使用者可能面临的问题之一. 使用tomcat或者其他服务器软件设置端口号后,比如 一些不是默认的, mysql的 3306, mssql的1433,有时候打不开网页, 原因是没有在ecs安全组去设置这个端口号. 解决: 点击ecs下网络和安全下的安全组 在弹出的安全组中,如果没有就新建安全组,然后点击配置规则 最后如上图点击添加...或快速创建.   have fun!  将编程看作是一门艺术,而不单单是个技术。
10502 0
从天而降并有幻影效果的窗口
     function move(x) {   if(self.moveBy){   self.moveBy (0,-800);   for(i = x; i > 0; i--)   {   self.
558 0
【开源】QuickPager ASP.NET2.0分页控件V2.0.0.6 修改了几个小bug,使用演示。
     由于项目里面还在使用vs2003,还没有使用新的分页控件,所以对新的分页控件的测试还很不到位,遗留了不少的bug,感谢网友试用提出宝贵意见。由于项目正在收尾中,时间也不是太充裕,所以使用说明也不够详细。
771 0
用优秀.NET界面控“.NET研究”件 打造新潮界面效果
  一直以来,做.NET共享小软件的界面一般采用IrisSkin这个比较不错的皮肤控件来美化界面效果,方便易用,界面效果也还可以。该控件开发应用比较方便,拖动控件到主界面,然后初始化地方添加一下代码即可: string skinFile = ConfigurationManager.AppSettings["SkinFile"];this.skinEngine1.SkinFile = Path.Combine(Application.StartupPath, skinFile);   主界面初始化中添加以上其他地方代码后,所有该程序的相关窗口都被美化成统一风格。
871 0
QuickPager asp.net 分页控件、表单控件等自定义控件下载 和介绍 【2009.09.07更新】
  最新下载地址: 自然框架的源代码、Demo、数据库、配置信息管理程序下载(2010.01.25更新)     QuickControl web控件集包含的控件 QuickControl web控件集——基本控件: 控件名称 说明 详细介绍 MyTextBox ...
960 0
+关注
swjian1997
热爱新技术,喜欢专研,目前了解范围:.net,C#,Xamarin.Android,MySQL,SQL Server,HTML,Linux,Python
62
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载