• .NET中的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;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="120px;text-align:left; padding-left:20px;"><%#Eval("Username") %></td>
                        <td  style="170px;text-align:left; "><%#Eval("RegistrationTime") %></td>
                        <td  style="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; 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; 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; 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; 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; 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; 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();
    }
  • 相关阅读:
    JSP内置对象Session
    jsp 中对jar 包的引用
    Windows下AndroidStudio 中使用Git(AndroidStudio项目于GitHub关联)
    教你怎么使用Github for Windows?
    cannot run program "git.exe":CreateProcess error=2
    如何在Android Studio上使用Github
    怎么在Android studio配置Github账号
    js下读取input中的value值
    jQuery获取多种input值的方法
    Android studio 导入github工程
  • 原文地址:https://www.cnblogs.com/swjian/p/6361434.html
Copyright © 2020-2023  润新知