WebForm Repeater: 重复器

Repeater控件,可以用来一次显示一组数据项。比如,可以用它们显示一个数据表中的所有行。      
       Repeater控件完全由模板驱动,提供了最大的灵活性,可以任意设置它的输出格式。

 Repeater支持以下5种模板      

● ItemTemplate : 对每一个数据项进行格式设置 【Formats each item from the data source.】      
● AlternatingItemTemplate : 对交替数据项进行格式设置      
● SeparatorTemplate : 对分隔符进行格式设置      
● HeaderTemplate : 对页眉进行格式设置 ,在加载开始执行一遍    
● FooterTemplate : 对页脚进行格式设置,在加载最后执行一遍     
以上,英文中使用了Formats item from datasource这样的话,就说明Repeater控件主要是用来对数据进行Format的,控制数据怎么样排列,怎么样显示。      
Repeater必须使用的是Itemtemplate,其它的类型模板按需添加。

例:

复制代码
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="main.aspx.cs" Inherits="main" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title></title>
    <style>
        * {
            margin: 0px;
            padding: 0px;
        }

        .tb1 {
            width: 100%;
        }

        .trh {
            background-color: blue;
            color: white;
            text-align: center;
            height: 50px;
        }

        .trb {
            text-align: center;
            height: 30px;
        }

            .trb:hover {
                background-color: #808080;
            }

        .trb1 {
            text-align: center;
            height: 30px;
            background-color: #ffd800;
        }

            .trb1:hover {
                background-color: #808080;
            }
    </style>
</head>
<body>
    <form id="form1" runat="server">
        <asp:Repeater ID="Repeater1" runat="server">
            <HeaderTemplate>
                <table class="tb1">
                    <tr class="trh">                    
                        <td>用户名</td>
                        <td>密码</td>
                        <td>昵称</td>
                        <td>性别</td>
                        <td>生日</td>
                        <td>民族</td>
                        <td>班级</td>
                    </tr>
            </HeaderTemplate>
            <ItemTemplate>
                <tr class="trb">  
                    <td><%#Eval("UserName") %></td>
                    <td><%#Eval("Pass") %></td>
                    <td><%#Eval("NickName") %></td>
                    <td><img height='30' src="<%#Eval("seximage") %>" /></td>
                    <td><%#Eval("Birthday","{0:yyyy年MM月dd日}") %></td>
                    <td style="<%#Eval("red")%>"><%#Eval("NationName") %></td>
                    <td><%#Eval("ClassName") %></td>
                </tr>
            </ItemTemplate>
            <AlternatingItemTemplate>
                <tr class="trb1">                     
                    <td><%#Eval("UserName") %></td>
                    <td><%#Eval("PassWord") %></td>
                    <td><%#Eval("NickName") %></td>
                    <td>
                        <img height='30' src="<%#Eval("seximage") %>" /></td>
                    <td><%#Eval("Birthday","{0:yyyy年MM月dd日}") %></td>
                    <td style="<%#Eval("red")%>"><%#Eval("NationName") %></td>
                    <td><%#Eval("ClassName") %></td>
                </tr>

            </AlternatingItemTemplate>
            <FooterTemplate></table></FooterTemplate>
        </asp:Repeater>
    </form>
</body>
</html>
复制代码
复制代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class main : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        Repeater1.DataSource = new UsersData().select();
        Repeater1.DataBind();
    }
}
复制代码
复制代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

/// <summary>
/// Nation 的摘要说明
/// </summary>
public class Nation
{
    public Nation()
    {
        //
        // TODO: 在此处添加构造函数逻辑
        //
    }
    public string Code { get; set; }
    public string Name { get; set; }
}
复制代码
复制代码
using System;
using System.Collections.Generic;
using System.Data.SqlClient;
using System.Linq;
using System.Web;

/// <summary>
/// NationData 的摘要说明
/// </summary>
public class NationData
{
    SqlConnection conn = null;
    SqlCommand cmd = null;
    public NationData()
    {
        conn = new SqlConnection("server=.;database=Data0928;user=sa;pwd=123");
        cmd = conn.CreateCommand();
    }
    public List<Nation> Select()
    {
        List<Nation> list = new List<Nation>();   
     cmd.CommandText = "select *from Nation";
      
        conn.Open();
        SqlDataReader dr = cmd.ExecuteReader();
        if (dr.HasRows)
        {
            while (dr.Read())
            {
                Nation n = new Nation();
                n.Code = dr[0].ToString();
                n.Name = dr[1].ToString();

                list.Add(n);
            }
        }
        conn.Close();
        return list;
    }
    public List<Nation> select()
    {
        List<Nation> list = new List<Nation>();
        cmd.CommandText = "select *from Class";

        conn.Open();
        SqlDataReader dr = cmd.ExecuteReader();
        if (dr.HasRows)
        {
            while (dr.Read())
            {
                Nation n = new Nation();
                n.Code = dr[0].ToString();
                n.Name = dr[1].ToString();

                list.Add(n);
            }
        }
        conn.Close();
        return list;
    }
}
复制代码
复制代码
using System;
using System.Collections.Generic;
using System.Data.SqlClient;
using System.Linq;
using System.Web;

/// <summary>
/// Users 的摘要说明
/// </summary>
public class Users
{
     SqlConnection conn = null;
        SqlCommand cmd = null;

        public Users()
        {
            conn = new SqlConnection("server=.;database=Data0928;user=sa;pwd=123");
            cmd = conn.CreateCommand();
        }
    private string _UserName;
    /// <summary>
    /// 账号
    /// </summary>
    public string UserName
    {
        get { return _UserName; }
        set { _UserName = value; }
    }
    private string _Password;
    /// <summary>
    /// 密码
    /// </summary>
    public string Password
    {
        get { return _Password; }
        set { _Password = value; }
    }
    public string Pass
    {
        get
        {
            string p = "";
            if (Password == "123456")
                p = "******";
                return p;
        }
    }
    public string Nickname { get; set;}
    public bool Sex { get; set; }
    public string seximage
    {
        get
        {
            string src = "";
            if (Sex)
                src = "showsm.png";
            else
                src = "showsw.png"; 
                
            return src;
        }
    }
    public DateTime Birthday{get;set;}
    public string Nation { get; set; }
    public string red
    {
        get
        {
            string yellow = "";
            if (NationName == "满族")
                yellow = "background-color:red;";
            return yellow;
        }
    }
    public string Class { get; set;}
    public string ClassName
    {
        get
        {
            string end = "<无班级>";

            cmd.CommandText = "select *from Class where ClassCode = @a";
            cmd.Parameters.Clear();
            cmd.Parameters.AddWithValue("@a", Class);
            conn.Open();
            SqlDataReader dr = cmd.ExecuteReader();
            if (dr.HasRows)
            {
                dr.Read();
                end = dr["ClassName"].ToString();
            }
            conn.Close();
            return end;
        }
    }
    public string NationName
    {
        get
        {
            string end = "<未填>";
            cmd.CommandText = "select *from Nation where NationCode = @a";
            cmd.Parameters.Clear();
            cmd.Parameters.AddWithValue("@a", Nation);
            conn.Open();
            SqlDataReader dr = cmd.ExecuteReader();
            if (dr.HasRows)
            {
                dr.Read();
                end = dr["NationName"].ToString();
            }
            conn.Close();

            return end;
        }
    }
}
复制代码
复制代码
using System;
using System.Collections.Generic;
using System.Data.SqlClient;
using System.Linq;
using System.Web;

/// <summary>
/// UsersData 的摘要说明
/// </summary>
public class UsersData
{
    SqlConnection conn = null;
    SqlCommand cmd = null;
    public UsersData()
    {
        conn = new SqlConnection("server=.;database=Data0928;user=sa;pwd=123");
        cmd = conn.CreateCommand();
    }
    /// <summary>
    /// 用户验证
    /// </summary>
    /// <param name="uname">用户名验证</param>
    /// <param name="pwd">密码验证</param>
    /// <returns></returns>
    public bool Select(string uname, string pwd)
    {
        bool yanzheng = false;
        cmd.CommandText = "select * from Users where UserName=@a and PassWord=@b";
        cmd.Parameters.Clear();
        cmd.Parameters.Add("@a", uname);
        cmd.Parameters.Add("@b", pwd);
        conn.Open();
        SqlDataReader dr = cmd.ExecuteReader();
        if (dr.HasRows)
        {
            yanzheng = true;
        }
        conn.Close();
        return yanzheng;
    }
    /// <summary>
    /// 添加
    /// </summary>
    /// <param name="u"></param>
    /// <returns></returns>
    public bool insert(Users u)
    {
        bool ok = false;

        cmd.CommandText = "insert into Users values(@a,@b,@c,@d,@e,@f,@g)";
        cmd.Parameters.Clear();
        cmd.Parameters.AddWithValue("@a", u.UserName);
        cmd.Parameters.AddWithValue("@b", u.Password);
        cmd.Parameters.AddWithValue("@c", u.Nickname);
        cmd.Parameters.AddWithValue("@d", u.Sex);
        cmd.Parameters.AddWithValue("@e", u.Birthday);
        cmd.Parameters.AddWithValue("@f", u.Nation);
        cmd.Parameters.AddWithValue("@g", u.Class);
        conn.Open();
        try
        {
            cmd.ExecuteNonQuery();
            ok = true;
        }
        catch
        { }
        conn.Close();
        return ok;
    }
    /// <summary>
    /// 查询是否有此用户
    /// </summary>
    /// <param name="username"></param>
    /// <returns></returns>
    public bool bselect(string username)
    {
        bool has = false;
        cmd.CommandText = "select *from Users where UserName = @a";
        cmd.Parameters.Clear();
        cmd.Parameters.Add("@a", username);

        conn.Open();
        SqlDataReader dr = cmd.ExecuteReader();
        if (dr.HasRows)
            has = true;

        conn.Close();
        return has;
    }
    /// <summary>
    /// 查询所有信息
    /// </summary>
    /// <returns></returns>
    public List<Users> select()
    {
        List<Users> flist = new List<Users>();
        cmd.CommandText = "select *from users";
        conn.Open();
        SqlDataReader dr = cmd.ExecuteReader();
        if (dr.HasRows)
        {
            while (dr.Read())
            {
                Users u = new Users();
                u.UserName = dr["UserName"].ToString();
                u.Password = dr["PassWord"].ToString();
                u.Nickname = dr["NickName"].ToString();
                u.Sex = Convert.ToBoolean(dr["Sex"]);
                u.Birthday = Convert.ToDateTime(dr["Birthday"]);
                u.Nation = dr["Nation"].ToString();
                u.Class = dr["Class"].ToString();
                flist.Add(u);
            }
        }
        conn.Close();
        return flist;
    }
}
复制代码

光棒效果

      意思是,当鼠标放上的时候,改变其属性,比如:背景色,边框颜色,边框样式等

      方法:js代码实现,用到两个事件,分别是:onmouseover(鼠标放上)和onmouseout(鼠标离开)

1、不论是正常显示的还是预警显示的,当鼠标放上时,背景色变为黄色;鼠标离开,回复原来的颜色。

复制代码
</style>
    <script >
        window.onload=function(){
            var items = document.getElementsByClassName("tr_Item");
            var oldColor = "";注释:存放原来的背景色
            for (var i = 0; i < items.length; i++) {
                items[i].onmouseover = function () {
                    oldColor = this.style.backgroundColor;
                    this.style.backgroundColor = "yellow";
                }
                items[i].onmouseout = function () {
                    this.style.backgroundColor = oldColor;
                }
            }
        }
    </script>
</head>
<body>
复制代码

2、除预警显示红色不变外,当鼠标放上时,背景色变为黄色;鼠标离开,回复原来的颜色。

复制代码
</style>
    <script >
        window.onload=function(){
            var items = document.getElementsByClassName("tr_Item");            
            for (var i = 0; i < items.length; i++) {
                if (items[i].style.backgroundColor != Red) {
                    items[i].onmouseover = function () {
                        this.style.backgroundColor = "yellow";
                    }
                    items[i].onmouseout = function () {
                        this.style.backgroundColor = oldColor;
                    }
                }
            }
        }
    </script>
复制代码

Repeater控件的事件处理

      Repeater控件有以下事件:      
              ● DataBinding : Repeater控件绑定到数据源时触发      
              ● ItemCommand : Repeater控件中的子控件触发事件时触发      
              ● ItemCreated : 创建Repeater每个项目时触发  
              ● ItemDataBound : Repeater控件的每个项目绑定数据时触发  

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Webform开发模式是一种用于构建Web表单的模式,它将表单元素(如文本框、下拉框、单选按钮等)和验证规则(如必填、长度限制、格式验证等)封装在一起,以便开发者可以轻松地创建和管理表单。 Webform开发模式通常包括以下步骤: 1. 确定表单需求:确定表单需要收集哪些信息,以及如何验证和处理这些信息。 2. 设计表单布局:设计表单的外观和布局,包括表单元素的排列和样式。 3. 编写表单代码:使用Webform框架提供的API编写表单的代码,包括添加表单元素、设置验证规则、处理提交等。 4. 测试表单:测试表单的功能和性能,检查是否有任何错误或缺陷。 5. 发布表单:将表单发布到Web应用程序中,以便用户可以访问和使用表单。 Webform开发模式的优点包括: 1. 简化开发流程:Webform框架提供了许多可重用的组件和API,可以大大简化表单开发的流程。 2. 提高代码可读性:通过将表单元素和验证规则封装在一起,可以提高代码的可读性和可维护性。 3. 支持多种验证规则:Webform框架支持多种验证规则,包括必填、长度限制、格式验证等,可以确保表单数据的准确性和完整性。 4. 提供可定制的样式:Webform框架提供了可定制的样式选项,可以使表单看起来更美观和专业化。 5. 提高用户体验:通过使用Webform框架提供的一些高级功能,如自动完成、分步表单、动态表单元素等,可以提高用户在表单中的体验。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值