Repeater 控件用于显示重复的项目列表,这些项目被限制在该控件。Repeater 控件可被绑定到数据库表、XML 文件或者其他项目列表。
一、建实体类和数据访问类
建立的方法和winform一样,建立时会提示类文件应该放在App_Code文件里,是否放入,选择是,会自动创建该文件夹并将类放进去。
webform没有命名空间。
实体类:
public class Users { public int Ids { get; set; } public string Ucode { get; set; } public string UserName { get; set; } public string PassWord { get; set; } public string NickName { get; set; } public bool Sex { get; set; } public string SexStr { get { string x = Sex ? "男" : "女"; return x; } } public string Party { get; set; } public string PartyName { get { string x = new PartysData().SelectPartyName(Party);return x; } } public string Lane { get; set; } public string LaneName { get { string x = new LanesData().SelectLaneName(Lane);return x; } } }
数据访问类:
public class UsersData { SqlConnection conn; SqlCommand cmd; public UsersData() { conn = new SqlConnection("server=.;database=LOL;user=sa;pwd=123;"); cmd = conn.CreateCommand(); } /// <summary> /// 查询所有用户 /// </summary> /// <returns></returns> public List<Users> SelectAll() { List<Users> ulist = new List<Users>(); cmd.CommandText = "select * from Users"; conn.Open(); SqlDataReader dr = cmd.ExecuteReader(); while (dr.Read()) { Users u = new Users(); u.Ids = Convert.ToInt32(dr["Ids"]); u.Ucode = Convert.ToString(dr["Ucode"]); u.UserName = Convert.ToString(dr["UserName"]); u.PassWord = Convert.ToString(dr["PassWord"]); u.NickName = Convert.ToString(dr["NickName"]); u.Sex = Convert.ToBoolean(dr["Sex"]); u.Party = Convert.ToString(dr["Party"]); u.Lane = Convert.ToString(dr["Lane"]); ulist.Add(u); } conn.Close(); return ulist; }
二、创建一个用于展示的页面
这个界面用于展示所有查询到的用户数据 相当于用户界面层
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Select.aspx.cs" Inherits="Select" %> <!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 type="text/css"> .UF_div { 1200px; margin: 0 auto; background-color: #eeeeee; } .User_div { display: inline-block; background-color: #ffccff; border-color: blue; border- 5px; margin: 5px 0; margin-left: 5px; border-style: solid; height: 210px; 220px; line-height:30px; } .User_div:hover { background-color: palevioletred; } </head> <body> <form id="form1" runat="server"> <asp:Repeater ID="UserData_all" runat="server"> <ItemTemplate> <div class="User_div"> 编 号:<%# Eval("Ucode")%><br /> 用户名:<%# Eval("UserName")%><br /> 密 码:<%# Eval("PassWord")%><br /> 昵 称:<%# Eval("NickName")%><br /> 性 别:<%# Eval("SexStr")%><br /> 地 区:<%# Eval("PartyName")%><br /> 位 置:<%# Eval("LaneName")%><br /> </div> </ItemTemplate> </asp:Repeater> <div style="clear: both"></div> </div> </form> </body> </html>
这里的<asp:Repeater ID="re1" runat="server"><asp:Repeater>就是Repeater控件,包含五个模板:AlternatingItemTemplate(交替绑定)、FooterTemplate(页脚)、HeaderTemplate(页眉)、ItemTemplate(基础绑定)、SeparatorTemplate(分隔线)。最常用且最必须有的就是ItemTemplate,其他的看情况添加。
三、后端C#代码
后端C#代码是业务逻辑层,会访问数据库取出数据,并把数据绑定到相应的前端页面上
protected void Page_Load(object sender, EventArgs e) { //数据绑定 UserData_all.DataSource = new UsersData().SelectAll(); UserData_all.DataBind(); }
这里用了两个Repeater的方法 DataSource(数据)和DataBind();
DataSource(数据)是将数据来源指向某个数据集合。
DataBind()是将数据绑定到页面上。