zoukankan      html  css  js  c++  java
  • asp.net动态网站repeater控件使用及分页操作介绍

    asp.net动态网站repeater控件使用及分页操作介绍

    1.简单介绍

    Repeater 控件是一个容器控件,可用于从网页的任何可用数据中创建自定义列表。Repeater 控件没有自己内置的呈现功能,这意味着用户必须通过创建模板来提供 Repeater 控件的布局。当网页运行时,Repeater 控件会循环通过数据源中的记录,并为每个记录呈现一个项。


    2.布局

    一个完整的Repeater包括:

    <!--头部模板,放表格开始及第一行标题-->
    <HeaderTemplate></HeaderTemplate> 
    <!--项目模板,会进行循环显示,放置表格第二行-->
    <ItemTemplate></ItemTemplate>
    <!--底部模板,放表格结束部分-->
    <FooterTemplate> </FooterTemplate>
    

    3.使用repeater进行数据绑定

    代码见下

    //从Person表中查出所有数据
    string sqlselect = "select * from Person";
    //使用自己封装好的类从数据库里查询信息,返回一个DataTable类型的数据
    DataTable dt = SQLHelper.DataT(sqlselect);
    //将数据绑定到repeater的数据源上
    this.RptPreson.DataSource = dt;
    //显示数据
    this.RptPreson.DataBind();
    

    4.repeater的删除功能

    在Repeater中添加删除的LinkButton:

    <asp:LinkButton ID="lbtDelete" CommandName="Delete" CommandArgument='<%#Eval("id") %>' runat="server">删除</asp:LinkButton> 
    

    给LinkButton的CommandName属性和CommandArgument属性赋值,然后通过OnCommand事件中,就可以得到CommandEventArgs类中的数据,从而到判断是哪个LinkButton被按动了。CommandEventArgs类存储了与Button事件相关的数据,并且可以在事件处理中通过CommandEventArgs类的属性来访问这些数据。说的明白些,就是当LinkButton被按动后,这个LinkButton所触发的数据都被储存到服务器的CommandEventArgs类中,访问CommandEventArgs类中的属性也就访问了被按动的LinkButton了。
    简单地讲,系统通过CommandName来确定哪一类Button被按下,进而确定应该执行的操作,通过CommandArgument来确定应该对哪一条数据进行操作。

    if (e.CommandName == "Delete")
    	{//删除行内容命令  
    		id = int.Parse(e.CommandArgument.ToString());
    		string sqlDelete = "delete from Person where ID='" + Convert.ToInt32(id) + "'";
    		SQLHelper.OperateSql(sqlDelete);
    		Response.Write("<script>alert('删除成功'),location='Person.aspx'</script>");
    	}
    

    5.repeater实现分页操作

    //PagedDataSource 类封装 Repeater控件的属性,这些属性使之可以执行分页。
    PagedDataSource pds = new PagedDataSource();
    pds.DataSource = dt.DefaultView;     //获取或设置数据源
    pds.AllowPaging = true;//允许分页
    pds.PageSize = 2;//单页显示项数
    lbTotal.Text = pds.PageCount.ToString();//获取页面总数
    int CurPage=1;
    pds.CurrentPageIndex = CurPage - 1;////当前页数,因为从0开始,所以接收到的数减1
    RptBook.DataSource = pds;//将数据绑定到repeater控件上
    RptBook.DataBind();
    

    6.repeater嵌套使用

    <asp:Repeater ID="RptPerson" runat="server" OnItemDataBound="RptPerson_ItemDataBound">
            <ItemTemplate>
                <h2>
                姓名:
               <%#Eval("name") %>
                    </h2>
                <h3>拥有的书籍</h3>
                <%--嵌套Repeater,显示每个人的书籍 --%>
                <asp:Repeater ID="RptBook" runat="server" OnItemCommand="RptBook_ItemCommand">
                    <ItemTemplate>
                        <%#Eval("book") %>
                    </ItemTemplate>
                </asp:Repeater>
                <%--嵌套Repeater结束--%>
                <br />
            </ItemTemplate>
        </asp:Repeater>
    

    后台.cs文件部分:
    Repeater数据分为 Item 和AlternatingItem ,比如 第一行 数据是Item,第二行 数据是AlternatingItem ,第三行 数据是Item……….

    //
    if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem) 
    {
    
    
    }
    
    //作用就是判断Reaperter的第几行
    

    Repeater嵌套实现“楼中楼”

    if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
        {
          //找到外层Repeater的数据项
            DataRowView rowv = (DataRowView)e.Item.DataItem;
            //提取外层Repeater的数据项的ID
            int ID = Convert.ToInt32(rowv["ID"]);
            //找到对应ID下的Book
            string select = "select * from Book where ownerid=" + ID.ToString();
            //找到内嵌Repeater
            Repeater rept = (Repeater)e.Item.FindControl("RptBook");
            //数据绑定
            rept.DataSource = SQLHelper.SelectS(select);
            rept.DataBind();
    		
        }
  • 相关阅读:
    HDU-1421 搬寝室(递推,DP,数学)2017寒假集训
    HDU-2577 How to Type(递推,DP)(水)2017寒假集训
    POJ-1088 滑雪(DP,二维LIS,记忆化)2017寒假集训
    CSUST-17级集训队选拔赛解题报告
    (十六)服务化:微服务架构,必须搞定高可用!
    (十五)服务化:微服务架构,粒度多少合适?
    (十四)服务化:微服务架构,究竟解决什么问题?
    (十三)本章小结:百万流量,这些技术够用了
    (十二)性能优化:读写分离,前台与后台分离
    (十一)性能优化:动静分离,互联网优化利器?
  • 原文地址:https://www.cnblogs.com/FZfangzheng/p/7782976.html
Copyright © 2011-2022 走看看