20150301—ASP.NET的Repeater

Repeater与GridView等数据列表一样,都是用来显示数据库的信息的,其中Repeater是最基本的列表形式,其用法也比较灵活。

一、Repeater的位置:

工具箱-数据-Repeater

拖拽进入页面后的显示:

切换到源视图会发现他只有两句代码:

<asp:Repeater ID="Repeater1" runat="server">
</asp:Repeater>

其他的格式等需要我们用代码来实现。

二、Repeater基本列表格式:

<asp:Repeater ID="Repeater1" runat="server">
            <HeaderTemplate><!--头部列表的标签-->
                <table>
                <tr>
                    <td>地名</td>
                    <td>邮编</td>
                    <td>管理</td>
                    <td>删除</td>
                </tr>
            </HeaderTemplate>
            <ItemTemplate><!--表主题内容标签—>
                <tr>
                    <td></td>
                    <td></td>
                    <td></td>
                    <td></td>
                </tr>
            </ItemTemplate>
            <FooterTemplate><!--表的脚部标签-->
                </table>
            </FooterTemplate>
        </asp:Repeater>

表头需要写入<HeaderTemplate>..</HeaderTemplate>标签中,即表的第一行放在此标签中。

主要数据放在<ItemTemplate>..</ItemTemplate>标签中,即表的主要数据内容的显示,只需要一行即可,绑定数据后系统会自动生成其他的行。

表的尾部<FooterTemplate>..</FooterTemplate>标签,尾部注解等。

三、Repeater的数据绑定。

需要先在HTML的页面中指定绑定的表的列名

(还需要创建LINQ to SQL的类,来连接数据库,附数据库表图,只需要类似的表即可)

 

使用<%#Eval("列名") %>,格式如下(这里只绑定了两个列):

 

            <ItemTemplate>
            <tr>
                <td><%#Eval("Name") %></td>
                <td><%#Eval("PostCode") %></td>
                <td></td>
                <td></td>
            </tr>
            </ItemTemplate>

成功绑定后在设计视图中的显示:

cs中的代码:

    private DiquDataContext diqu;//外部定义LINQ方便使用
    protected void Page_Load(object sender, EventArgs e)
    {
        diqu = new DiquDataContext();//初始化LINQ
        if (!IsPostBack)//第一次加载时
        {
            BindData();
        }
    }
    //创建了一个数据绑定的方法以方便使用
    public void BindData()
    {
       //按条件查询数据
        var que = from m in diqu.Members where m.ParentId.ToString().Length == 2 select m;//按字符个数确定省级地区
        //绑定数据
        Repeater1.DataSource = que;
       Repeater1.DataBind();
    }

绑定完成:

四、Repeater的编辑和删除按钮

在表格中相应的位置添加LinkButton控件,然后给控件设置 CommandName(为控件设置名字)  CommandArgument(绑定数据,索引)

            <ItemTemplate>
            <tr>
                <td><%#Eval("Name") %></td>
                <td><%#Eval("PostCode") %></td>
                <td>
                    <asp:LinkButton ID="LinkButton_guanli" CommandArgument=‘<%#Eval("ParentId") %>‘ CommandName="xiaji" runat="server">下级管理</asp:LinkButton>
                </td>
                <td>
                    <asp:LinkButton ID="LinkButton_shanchu" CommandArgument=‘<%#Eval("ParentId") %>‘ CommandName="shanchu" runat="server">删除</asp:LinkButton>
                </td>
            </tr>
            </ItemTemplate>

在Repeater控件的属性--事件—ItemCommand(单击Repeater任意按钮时触发),双击自动生成事件

cs中的代码:

protected void Repeater1_ItemCommand(object source, RepeaterCommandEventArgs e)
    {
        //删除
        if (e.CommandName == "shanchu")//如果点击的是删除按钮
        {//表中ParentId列的数据类型是int
            int code = int.Parse(e.CommandArgument.ToString());
            Members cdata = diqu.Members.Single(r => r.ParentId == code);
            diqu.Members.DeleteOnSubmit(cdata);
            diqu.SubmitChanges();
            binddata();
        }
        //展示下级
        if (e.CommandName == "xiaji")
        {
            int cou = e.CommandArgument.ToString().Length;//获取字符串长度,以判断省市地区的级别
            if (cou == 2)//省或者直辖市为两位数
            {
                Repeater1.DataSource = null;//清空数据
                string code = e.CommandArgument.ToString();
                //按照字符长度并截取字符串进行匹配(搜索的位置是 市)
                var xia = from m in diqu.Members where m.ParentId.ToString().Length == 4 where m.ParentId.ToString().Substring(0, 2) == code select m;
                Repeater1.DataSource = xia;
                Repeater1.DataBind();
            }
            if (cou == 4)//市  为4位数
            {
                Repeater1.DataSource = null;//清空数据
                string code = e.CommandArgument.ToString();
                //按照字符长度并截取字符串进行匹配(搜索的位置是 地区)
                var xia = from m in diqu.Members where m.ParentId.ToString().Length == 6 where m.ParentId.ToString().Substring(0, 4) == code select m;
                Repeater1.DataSource = xia;
                Repeater1.DataBind();
            }
            if (cou == 6)//地区 为6位数,最小级别
            {
                //弹出提示信息
                Response.Write("<script>alert(‘已到最小级别!‘);</script>");
            }
        }
    }
时间: 2024-11-07 03:19:04

20150301—ASP.NET的Repeater的相关文章

asp.net中Repeater中用ul li绑定数据

<ul class="tit1"> <asp:Repeater ID="Repeater1" runat="server"> <ItemTemplate> <li> <p class="tit1-p-1"> <img style="border: 0px;" src="/image/biaozhi.jpg" /> &

asp.net中Repeater结合js实现checkbox的全选/全不选

前台界面代码: <input name="CheckAll" type="checkbox" id="CheckAll" value="" onclick="javascript:FormSelectAll('form1','cboxi','CheckAll',this);" /> //用于选择是否全选的复选框,用javascript函数"FormSelectAll('form1','

解决asp.net中repeater控件的显示数量控制

在使用oracle时,没有top这个属性,如果想限制查询数量,必须使用伪字段ROWNUM 可以看到这里第一列没有title的字段就是rownum字段,在oracle插入数据的时候自带的,无需人为添加. 我们如果想要实现控制查询数量,可以利用这个字段. 方案一: 我们可以写成 SELECT * FROM TA_新闻 WHERE ROWNUM <= 3 ORDER BY 发布时间 DESC 来控制显示三条记录. 但是,我们注意到这个ROWNUM是在插入数据时产生的,也就是说如果我们新插入一条发布时间

asp.net:repeater嵌套(常用于新闻等在首页归类显示)

using System;using System.Configuration;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.Security;using System.Web.UI;using System.Web.UI.WebControls;using System.Web.UI.WebControls.WebParts;using System.Web.UI.Htm

asp.net 将repeater上数据导出到excel

1,首先得到一个DataTable public DataTable GetTable(string sql) { SqlConnnection con=new SqlConnection(ConfigurationManager.ConnectionStrings["connectionstringname"].ConnectionString); con.Open(); SqlCommand cmd = new SqlCommand(sql, con); SqlDataAdapte

ASP.NET(C#)--Repeater中生成“序号”列

需求介绍:在Repeater(Table)中加入“序号”列,从1开始自增,步长为1. 思路:因为“序号”跟Repeater的行号有关,所以要在Repeater的ItemDataBound事件中输出“序号”的值.为方便给“序号”赋值,我们使用Label控件. 注意:Repeater的ItemIndex是从0开始的,而“序号”列是从1开始的,所以ItemIndex要加1. 前台代码如下图所示: 前台代码 <asp:Repeater ID="Repeater1" runat="

asp.net关于Repeater控件中的全选,批量操作

今天在Repeater控件中碰到一个全选的操作,于是上网查了一下,找到一个觉得比较好,便记录下来, 界面代码简化之后(全选操作): <script type="text/javascript"> function SelectAll(parentChk, ChildId, bigControlID) { var oElements = document.getElementsByTagName("INPUT"); var bIsChecked = par

asp.net学习——Repeater控件

1 <style type="text/css"> 2 html { 3 background-color:Silver 4 } 5 .content { 6 width:600px; 7 border:soild 1px black; 8 background-color:White; 9 } 10 .movies { 11 border-collapse:collapse; 12 } 13 .movies th,.movies td { 14 padding:10px;

asp.net 在repeater控件中加按钮

在repeater中加入方法有两种方法: 第一种:是对repeater控件的行添加OnItemCommand事件,添加方法也是有两种 1.在设计页面中,选中repeater控件右击==>属性==>属性栏中的事件标签(闪电符号)==>双击ItemCommand 2.在写代码,也是可以实现. <asp:Repeater ID="rptDataList" runat="server" onitemcommand="rptDataList_