ASP.NET ---- Repeater 遍历出省市
Repeater 控件可以数据库中的数据,一条条的查找出,不需要后端在进行遍历输出了,
Repeater必须使用的是Itemtemplate,其它的类型模板按需添加,主要记住Itemtemplate就行。
ItemTemplate : 对每一个数据项进行格式设置
AlternatingItemTemplate : 对交替数据项进行格式设置
SeparatorTemplate : 对分隔符进行格式设置
HeaderTemplate : 对页眉进行格式设置
FooterTemplate : 对页脚进行格式设置
Repeater控件中的属性作用:
DataBinding : Repeater控件绑定到数据源时触发
ItemCommand : Repeater控件中的子控件触发事件时触发
ItemCreated : 创建Repeater每个项目时触发
ItemDataBound : Repeater控件的每个项目绑定数据时触发
HiddenField控件: 用于存储需要在向服务器的发送间保持的值
前端页面:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="obgetest1.aspx.cs" Inherits="obgetest1" %> <!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> <link rel="stylesheet" type="text/css" href="style/css.css" /> </head> <body> <form id="form1" runat="server"> <div> <div class="xxlb_ss"> <ul> <asp:Repeater ID="RepeaterwxSheng" runat="server" OnItemDataBound="RepeaterwxSheng_ItemDataBound"> <ItemTemplate> <li> <div class="middle" style="margin-bottom:20px;"> <div class="city_l"><span class="xxlb_ssbg" href=""><%# DataBinder.Eval(Container.DataItem,"Ext02") %></span></div> <div class="city_r"> <asp:HiddenField ID="HiddenFieldShengCode" runat="server" Value='<%# DataBinder.Eval(Container.DataItem,"TypeCollCode") %>' /> <asp:Repeater ID="RepeaterwxShi" runat="server"> <ItemTemplate> <a href=""><%# DataBinder.Eval(Container.DataItem,"Ext02") %></a> </ItemTemplate> </asp:Repeater> </div> <div class="clear"></div> </div> </li> </ItemTemplate> </asp:Repeater> </ul> </div> </div> </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 obgetest1 :PageBase { //引用 逻辑层 private BllFourCollsType _bllCollType = new BllFourCollsType(); protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { //调用省方法 ShengLoad(); } } private void ShengLoad() {
//使用泛型从 对应model 表中寻找 List<FourCollsType> mList = _bllCollType.Get_Ex_FourCollsTypeListByIDLevel("TypeCollCode,Ext02", base.EnterpriseGuid, 4001, 2, 0f);//rePeater 控件的省 RepeaterwxSheng 获取数据源 this.RepeaterwxSheng.DataSource = mList; //绑定数据源 this.RepeaterwxSheng.DataBind(); } // protected void RepeaterwxSheng_ItemDataBound(object sender, RepeaterItemEventArgs e) { //从省里面找市 所以需要隐藏域 HiddenField HiddenFieldShengCode = (HiddenField)e.Item.FindControl("HiddenFieldShengCode"); Repeater RepeaterwxShi = (Repeater)e.Item.FindControl("RepeaterwxShi"); if (RepeaterwxShi != null && HiddenFieldShengCode != null) { List<FourCollsType> mList = _bllCollType.Get_Ex_FourCollsTypeList_CodeDown("Ext02", base.EnterpriseGuid, 4001, HiddenFieldShengCode.Value, 3, 0f); //this 指的是当前页面对象,不能用 this RepeaterwxShi.DataSource = mList; RepeaterwxShi.DataBind(); } } }