我的ASP.NET学习之路(1)
来源:互联网 发布:淘宝时间倒计时代码 编辑:程序博客网 时间:2024/05/01 04:53
最近在工作中经常会用到asp.net的知识,之前对asp.net学习了解的知识比较少,所以在工作中总感觉自己会的东西不够用的。于是决定拿出时间来学习一下,补充一下自己的asp.net知识。写博客的
目的:起到督促学习的作用,不至于半途而费。
学习内容:Repeater 控件使用方法。
之前对这个控件不是很了解,所以这次先拿这个控件开刀了,呵呵。。
上网找了点资料,文章引用地址为:
http://fengyan86.spaces.live.com/blog/cns!C84858449081BC2D!209.trak
Repeater是一个迭代控件,什么是迭代控件呢?
如果一个ASP.NET数据绑定控件能够遍历一组数据,以将一个ASP.NET
模板应用于每一个数据项,则将这个ASP.NET数据绑定控件称为迭代控件。
Repeater空间的模板列表:
ItemTemplate
AlternatingItemplate
HeaderTemplate
Repeater控件通过枚举被绑定的数据源中的数据项来填充Items集合,数据源中包含的所有数据对象都将映射为一个RepeaterItem对象,并插入到Items集合中。
DataItem 返回绑定的数据对象,为绑定的Repeater项中返回NULL
ItemIndex 返回所呈现数据项的索引(从零开始)
ItemType 返回Repeater呈现项的type包括(Header,Footer,Item,AlternatingItem,Separator)
该模板确定了数据项的呈现样式
AlternatingItemplate
该模板也是用来确定数据项的实现样式,与ItemTemplate定义的样式交替显示,而且在ItemTemplateAlternatingItemTemplate中定义相同的数据绑定控件时需要将ID属性设为一致。
HeaderTemplate
该模板确定了控件页眉的呈现样式
FooterTemplate
该模板确定了控件页脚的呈现样式
SeparatorTemplate
该模板定义了数据项间隔的呈现样式
DataSource
获取或设置IEnumerable数据源,为填充列表提供任何数据
DataMember
获取或设置绑定到该控件的DataSource中指定的表,平时所用较少(一般一个DataSoure中设置一个DataTable)。
DataSourceID
获取或设置数据源控件的名称,一般在以申明的方式指定数据源时使用,为填充列表提供任何数据。
Repeater控件通过枚举被绑定的数据源中的数据项来填充Items集合,数据源中包含的所有数据对象都将映射为一个RepeaterItem对象,并插入到Items集合中。
RepeaterItem控件的属性
DataItem 返回绑定的数据对象,为绑定的Repeater项中返回NULL
ItemIndex 返回所呈现数据项的索引(从零开始)
ItemType 返回Repeater呈现项的type包括(Header,Footer,Item,AlternatingItem,Separator)
Repeater数据绑定的实现
DataBind,
例如:<ItemTemplate><%#m_checkbox = (CheckBox)GetCheckBox(Container)%></ItemTemplate>
DataBind,
要想实现让Repeater控件生成HTML代码,并将其添加到输出流中以显示到最终的浏览器中的目的,必须调用DataBind方法。此外Repeater控件还提供了一下常用事件。
ItemCommand
该事件是Repeater中最常用的一个事件,单击Repeater控件中的按钮(Button或LinkButton)时触发该事件。
ItemCreate
在创建一个Repeater项时触发该事件,DataItem属性总是返回NULL
ItemDataBind
将Repeater控件中的某个项绑定到基层数据(数据源数据)以后触发该事件,ItemTemplate和AlternatingItemTemplate绑定项的DataItem属性不为NULL
动态定制实现样式呈现
在数据绑定之后需要生成HTML输出,这可以套用在各种Template中定制的模板,也可以根据绑定的数据动态生成HTML的样式输出。
因此数据项的信息就需要作为输入参数,来动态生成HTML时候,Container很好的提供这项功能。在生成HTML的函数中可以使用DataBinder.GetPropertyValue(Container.DataItem,"XXX");来得到指定数据对象(即该Container.DataItem)的指定属性的值。但前提是该属性需要申明为public并且至少有get访问器。否则将不起作用(例如 该属性实现为一个字段)。一般.NET Framework 2.0 实现的数据源控件都符合上述的要求。只有在定制自己的数据源控件时才需要注意上述问题。
举例:
举例:
<ItemTemplate><%# GetStyleForItem(Container)%></ItemTemplate>
public string GetStyleForItem(Control dataObj)//public 是必须的
{
string value = DataBinder.GetPropertyValue(dataObj.DataItem,"XXX");
}
{
string value = DataBinder.GetPropertyValue(dataObj.DataItem,"XXX");
}
获取子控件进行编程处理
获取子控件有两种方法可用:
获取子控件有两种方法可用:
1,将Container作为参数传到后台函数中。
例如:<ItemTemplate><%#m_checkbox = (CheckBox)GetCheckBox(Container)%></ItemTemplate>
public CheckBox GetCheckBox(Control container)
{
return (CheckBox)container.FindControl("DontrolID");
}
2,利用postback事件---ItemCommand来实现
protected void Repeater1_ItemCommand(object source,RepeaterCommandEventArgs e)
{
if(e.CommandName=="checkbox")//如果未指定CommandName属性则也可以用CommandSourc.Text属性。
CheckBox a = (CheckBox)e.Item.FindControl("ControlID");
//处理a控件。
}
数据源控件、数据绑定程序的叙述以后再做
{
return (CheckBox)container.FindControl("DontrolID");
}
2,利用postback事件---ItemCommand来实现
protected void Repeater1_ItemCommand(object source,RepeaterCommandEventArgs e)
{
if(e.CommandName=="checkbox")//如果未指定CommandName属性则也可以用CommandSourc.Text属性。
CheckBox a = (CheckBox)e.Item.FindControl("ControlID");
//处理a控件。
}
数据源控件、数据绑定程序的叙述以后再做
- 我的ASP.NET学习之路(1)
- .Net 我的学习之路(三)--- Asp.net
- .Net 我的学习之路(五) --- Asp.Net 页面状态的实现原理
- .Net 我的学习之路(四) --- Asp.Net 页面状态
- Microsoft ASP.NET学习笔记(1)我眼中的ASP.NET
- [我的ASP.net学习历程]数据库操作之(二)
- [我的ASP.net学习历程]DataAdapter操作之(一)
- [我的ASP.net学习历程]DataAdapter操作之(二)
- ASP.NET的个人学习之路!
- [我的ASP.net学习历程]DataGrid(DataBind)(1)
- [我的ASP.net学习历程]DataGrid(PageChange)(1)
- [我的ASP.net学习历程]DataList(DataBind)(1)
- [我的ASP.net学习历程]DataReader(1)
- [我的ASP.net学习历程]DropDownList
- [我的ASP.net学习历程]IsPostBack
- [我的ASP.net学习历程]out
- [我的ASP.net学习历程]Reference
- [我的ASP.net学习历程]RegularExpressionValidator
- 抓图函数
- oracle 初始化参数SERVICE_NAMES和客户端TNS中SERVICE_NAME
- Algorithm: Reverse a Integer to an array with recursion
- sql2008使用merge语句实现数据差异传输
- ANDROID学习网站收集
- 我的ASP.NET学习之路(1)
- 使用jpeg库读取jpg文件
- 进程间通信学习总结
- 更改远程桌面端口
- 我超级支持CSDN的博客
- 一些概念
- Asp.net MVC2使用第三方控件
- java软件工程师培训学习日记------java语言核心基础之认识JAVA
- 我饿了