repeater控件介绍、 repeater嵌套repeater
repeater控件介绍、 repeater嵌套repeater
repeater控件介绍、 repeater嵌套repeaterrepeater的介绍
DataGrid控件对数据输出格式是自动生成HtmlTable标记的,DataList控件也是这样,它根据数据内容来生成数据控制表格。而Repeater 控件是模板化的数据绑定列表,Repeater 控件是“无外观的”,Repeater控件完全由模板驱动,提供了最大的灵活性,可以任意设置它的输出格式。即:它不具有任何内置布局或样式,也就不会产生任何数据控制表格来控制数据的显示。因此,我们必须在控件的模板中明确声明所有 HTML 布局标记、格式标记和样式标记。
Repeater 控件的几个模板项介绍
AlternatingItemTemplate
对交替数据项进行格式设置,与 ItemTemplate 元素类似,但在 Repeater 控件中隔行(交替项)呈现一次。通过设置 AlternatingItemTemplate 元素的样式属性,可以为其指定不同的外观。
FooterTemplate
该模板确定了控件页脚的呈现样式,在所有数据绑定行呈现之后呈现的元素。用于控制Repeater 控件底部的样式和布局。
注意 FooterTemplate 不能是数据绑定的。
HeaderTemplate
该模板确定了控件页眉的呈现样式,在所有数据绑定行呈现之前呈现一次的元素。用于控制Repeater 控件头部的样式和布局。
注意 HeaderTemplate 项不能是数据绑定的。
ItemTemplate
该模板确定了数据项的呈现样式,对每一个数据项进行格式设置,为数据源中的每一行都呈现一次的元素
SeparatorTemplate
该模板定义了数据项间隔的呈现样式
Repeater数据绑定的实现
<li class="content">
<asp:Repeater ID="RepNewsClass" OnItemDataBound="RepNewsClass_ItemDataBound"
runat="server" EnableViewState="false">
<ItemTemplate>
<li class="class">
<li class="classhead">
<li class="classtitle">
<%# Eval("ClassName")%>
</li>
<li class="more">
<a href="/news/catalog/<%# Eval("ClassID")%>。htm"><img src="/images/more。gif" border="0" /></a>
</li>
</li>
<li class="classbody">
<li class="picnews">
<asp:Literal ID="lt_PicNews" runat="server" EnableViewState="false"></asp:Literal>
</li>
<asp:Repeater ID="RepNews" runat="server" EnableViewState="false">
<HeaderTemplate>
<ul>
</HeaderTemplate>
<ItemTemplate>
<li>
<a href="/news/<%# Eval("NewsID") %>。htm" title="<%# Eval("Title") %>" target="_blank"><%# GkSystem.Utility.MyString.SubString(Eval("Title").ToString(),40,"") %></a>
</li>
</ItemTemplate>
<FooterTemplate>
</ul>
</FooterTemplate>
</asp:Repeater>
</li>
</li>
<li class="clear"></li>
</ItemTemplate>
</asp:Repeater>
</li>
cs文件代码
using System;
using System.Data;
using System.Configuration;
using System.Collections;
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.HtmlControls;
using System.Data.SqlClient;
public partial class News_Default : BasePage
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
metakeywords.Content = GkSystem.BLL.SiteConfig.GetConfig().SiteKeyWords;
metadescription.Content = GkSystem.BLL.SiteConfig.GetConfig().SiteDescription;
this.RepBrand.DataSource = GkSystem.BLL.Brands.GetListWhereBrandIDInNews();
this.RepBrand.DataBind();
this.RepRecommend.DataSource = new GkSystem.BLL.News().GetList("IsRecommend=1 AND ISDELETE=0 AND ISAUTH=1");
this.RepRecommend.DataBind();
DataSet ds = GkSystem.BLL.NewsClass.GetListWhereClassIDInNews();
this.RepClass.DataSource = ds;
this.RepClass.DataBind();
this.RepNewsClass.DataSource = ds;
this.RepNewsClass.DataBind();
this.RepTop.DataSource = new GkSystem.BLL.News().GetTopNews("ISDELETE=0 AND ISAUTH=1",10);
this.RepTop.DataBind();
this.RepNew.DataSource = new GkSystem.BLL.News().GetNewNews("ISDELETE=0 AND ISAUTH=1",10);
this.RepNew.DataBind();
}
}
protected void RepNewsClass_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
Repeater rep = (Repeater)e.Item.FindControl("RepNews");
int ClassID = (int)((DataRowView)e.Item.DataItem)["ClassID"];
rep.DataSource = new GkSystem.BLL.News().GetTopNews("ClassID=" + ClassID + " and ISDELETE=0 AND ISAUTH=1", 6);
rep.DataBind();
Literal lt_PicNews = (Literal)e.Item.FindControl("lt_PicNews");
lt_PicNews.Text = GetPicNews(ClassID);
}
}
protected string GetPicNews(int ClassID)
{
string tmp = "";
using (SqlDataReader dr=GkSystem.DBUtility.SqlHelper.ExecuteReader(GkSystem.DBUtility.SqlHelper.ConnectionString,CommandType.Text,"select top 1 * from gk_sys_news where IsPicNews = 1 and Classid = "+ClassID.ToString()))
{
if (dr.Read())
{
tmp += "<li class=\\"pic\\"><a target='_blank' href='/news/" + dr["NewsID"].ToString() + "。htm' title='" + dr["title"].ToString() + "'><img src=\\"";
if (String.IsNullOrEmpty(dr["TitlePic"].ToString()))
tmp += "/images/no-pic。gif\\"";
else
tmp += dr["TitlePic"].ToString() + "\\"";
tmp += " /></a></li><li><a target='_blank' href='/news/" + dr["NewsID"].ToString() + "。htm' title='" + dr["title"].ToString() + "'>" + GkSystem.Utility.MyString.SubString(dr["Title"].ToString(), 16, "") + "</a></li>";
}
else
{
tmp = "<li class=\\"pic\\"><img src='/images/no-pic。gif' /></li><li></li>";
}
}
return tmp;
}
}
- ASP.NET写文件的方法
- ASP.NET生成静态页面的方法
- asp.net 参数化like模糊查询
- ASP.NET中Obsolete属性
- asp.net中使用ueditor
- asp.net中fileupload上传文件的方法
- ASP.NET中获取匿名对象的属性值
- ASP.NET私有构造函数作用
- asp.net 文件操作
- asp.net func 委托
- asp.net将ppt文档转换成pdf
- asp.net中Server.MapPath的使用
- ASP.NET中XML与DataSet的相互转换
- ASP.NET使用JavaScriptSerializer实现序列化与反序列化
- ASP.NET Web API中参数的传递
- ASP.NET中lock 的用法
- 东南亚有哪个国家(东南亚有哪个国家最发达)
- 东南亚安全吗(好不好挣钱)
- 潘长江小品《照亮全家福》台词剧本完整版(潘长江小品照亮全家福台词剧本完整版)
- 一窗通办政务服务小品剧本(一窗通办政务服务小品剧本)
- 刘韬涛丁子贺小品《根治低头族》台词剧本(刘韬涛丁子贺小品根治低头族台词剧本)
- 看完《夺冠》,黄渤的演技我实在夸不起来,彭昱畅反令人惊喜(黄渤的演技我实在夸不起来)
热门推荐
- mysql 分组自定义排序(正排倒排,并不是 MySQL 的排序的全部!)
- css导航栏字怎么分开设置(纯CSS实现导航栏Tab切换效果)
- css 宽度继承(CSS样式中大于号的使用及Css中处理继承方法)
- python用指针合并两个有序数组(Python3实现计算两个数组的交集算法示例)
- 小程序开发计算方法(小程序实现简单的计算器)
- css如何让图片居中
- sql查询语句casewhen是什么意思(SQL Server中使用判断语句IF ELSE/CASE WHEN 案例)
- mysql统计下个月过生日的人数(Mysql出生日期转换为年龄并分组统计人数的方法示例)
- pythonqt入门教程(使用python实现mqtt的发布和订阅)
- python面向对象的介绍(Python面向对象思想与应用入门教程类与对象)