《ASP.NET》数据绑定—DataList

DataList控件是.NET中的一个控件。DataList控件以表的形式呈现数据(在属性生成器中可以编辑),通过该控件,您可以使用不同的布局来显示数据记录(使用模板编辑),例如,将数据记录排成列或行的形式。您可以对
DataList控件进行配置,使用户能够编辑或删除表中的记录(使用EditItemTemplate模板和SelectedItemTemplate模板)。DataList控件不使用数据源控件的数据修改功能,您必须自己提供此代码。

一、DataList
与 Repeater比较

1、DataList比Repeater多了两个模板:SelectedItemTemplate和EditItemTemplate,支持选择和编辑功能。

2、DataList有可视化的模板编辑和属性编辑,而Repeater控件不指定内置布局,与DataList相比,数据编辑起来比较麻烦。

3、DataList中的内容是以表格的形式呈现数据,这样一来,使数据排列更加美观,而Repeater自己需要添加表格才行。

4、DataList将项显式放在HTML表中,Repeater则不然。

二、DataList中的模板

1、ItemTemplate、AlternationgItemTemplate、SeparatorTemplate、HeaderTemplate、FooterTemplate、SelectedItemTemplate 、 EditItemTemplate。

三、事件

1、冒泡事件

在“.NET” 框架包含三个支持事件冒泡的标准控件:Repeater、DataList和DataGrid控件。这些控件可以让你捕获其子控件的事件。当子控件产生一个事件时,事件就“冒泡”传给包含该子控件的容器控件,并且容器控件就可以执行一个子程序来处理该事件。

DataList控件支持事件冒泡,可以捕获DataList内包含的控件产生的事件,并且通过普通的子程序处理这些事件。讲到这里有些人可能不太明白事件冒泡的好处所在,这样,我们反过来思考:如果没有事件冒泡,那么对于DataList内包含的每一个控件产生的事件都需要定义一个相应的处理函数,如果DataList中包含10000个控件呢?或者更多呢?那我们得写多少个事件处理程序。所以有了事件冒泡,不管DataList中包含多少个控件,我们只需要一个处理程序就可以了。我的理解就是将程序封装,再通过继承的机制决绝问题。

2、DataList支持的事件:

EditCommand:由带有CommandName=”edit”的子控件产生。

CancelCommand:由带有CommandName=”cancel”的子控件产生。

UpdateCommand:由带有CommandName=”update”的子控件产生。

DeleteCommand:由带有CommandName=”delete”的子控件产生。

ItemCommand:DataList的默认事件。

3、事件触发的过程:有了这五个事件,那么当我点击了DataList控件中的某一个按钮的时候,应该触发哪一个事件呢?什么时候才触发它们呢?

在“ASP点NET ”中有三个控件带有CommandName属性,分别是Button、LinkButton和ImageButton,可以设置它们的CommandName属性来表示容器控件内产生的时间类型。比如,如果设置DataList中的一个LinkButton的CommandName属性为“update”,那么点击此按钮的时候,将会触发DataList的UpdateCommand事件,我们可以将相关处理代码写到对应的事件处理程序中去。

注意:ItemCommand事件是DataList控件产生的默认事件,任何DataList控件中CommandName为delete/cancel/update/edit的按钮被点击后,事件ItemCommand首先被触发,然后才是相应的事件。

四、编辑DataList中的数据。

1、通过选择DataList中某一项的主键而进行编辑,使用DataList控件中的DataKeys集合。

在选择DataList中的一个项时,通常需要获取与这个项相关联的主键的值。可以使用DataKeys集合来获取与一个项想关联的主键的值。在创建了DataKeys集合后,就可以通过传递项的索引值给DataKeys集合来获取DataList中与相关项关联的主键值。比如,要获取由 DataList显示的第三项的主键值,就可以是使用:DataList1.DataKeys[2],如果要在DataList控件的事件处理函数中发生事件的项的主键值,则用:DataList1.DataKeys[e.Item.ItemIndex]。

2、编辑DataList中的项

可以使用DataList控件来编辑数据表中的某一条记录,事实上,在DataList中完成这样的操作非常的方便,不像在asp中需要在多个页面中来回切换。DataList控件具有一个名为EditItemTemplate的模板,在EditItemTemplate中放置表单控件,以便能在DataList中编辑特定的项。当DataList的EditItemIndex属性的值为DataList某一项的索引的时候,对应的项将会以EditItemTemplate模板显示;当属性值为-1时,表示不显示EditItemTemplate模板。

3、选择DataList中的项

数据绑定到DataList后,DataList中的每一项都有一个索引号,第一项的索引为0,依次往下编号。我们可以利用索引来确定DataList中具体的项。

DataList默认以ItemTemplate或ItemTemplate+AlternatingItemTemplate模板显示数据项,当DataList的SelectedIndex属性的值为DataList某一项的索引的时候,对应的项将会以SelectedItemTemplate模板显示。当该属性值为-1时,表示不显示SelectedItemTemplate模板。

四、小结

说了这么多,光说不练是嘴把式,上面都是一些理论知识,只有自己用到了才能深深地体会到其中的功能,下一篇博客就是针对DataList的实践篇,敬请关注!!!

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-15 19:42:48

《ASP.NET》数据绑定—DataList的相关文章

asp:DropDownList数据绑定

开始以为asp:DropDownList数据绑定要是datatable类型的,当时写的时候没注意,就写成了List<T>绑定到了dropdownlist上,结果只有将DataValueField和DataTextField这两个属性设置到相应的列上,数据同样可以完成绑定. 下面贴出绑定的流程: 后台代码: protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { this.name2.DataSource

ASP.NET中DataList数字分页代码

ASP.NET中DataList数字分页代码 转 荐 好长时间没发东西了, 之前一段时间一直在做别的东西, 最近java实验室要开搞系统哈哈, 重新学习.net 这个分页困扰了我这个菜鸟好久阿, 搞了好久终于找到这段代码, 还是数字分页, 试了成功了~还不会分页的朋友看到这个就偷笑吧~~ 代码转自http://hi.baidu.com/honfei css样式取自吴旗娃aspnetpager 效果: 共1页       首页 上一页  1 2 3 4 5 6 7 8 9 10 ....下一页 末

030. asp.net中DataList数据绑定跳转(两种方式)的完整示例

前台代码: <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" MaintainScrollPositionOnPostback="true" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Tran

《ASP.NET》数据绑定—DataList实践篇

上篇文章大概讲了DataList的一些基础知识,掌握这些知识在将来的应用中起到很大的作用,现在我们就开始讲上篇文章中说的基础知识做一个小例子. 首先,我机子的数据库中有一张person表,如下图所示. 现在,我们用DataList控件将表中的信息显示出来,并可以在DataList控件上对数据库中的表进行编辑操作. 1.首先用vs创建web应用程序,添加web窗体,在web窗体内拉入DataList控件,右击控件,选择编辑项模板,在这里我们能看到四个模板,其中两个是SelectedItemTemp

C#(ASP.NET) DataList数据库数据绑定

DataList数据绑定 1.连接数据库 (1)创建连接字符串 (2)创建连接对象 2.获取存储过程 (1)创建存储过程 (2)获取存储过程 3.获取数据表 (1)创建SqlDataAdapter对象 (2)填充SqlDataAdapter对象 (3)返回DataTable对象 4.数据绑定 (1)设置DataList.DataSource属性 (2)编写前端DataList控件及子控件 (3)给子控件赋值 <%# Eval("数据列名称")%> //Web.Config文

ASP.NET数据绑定控件

数据绑定控件简介 数据绑定分为:数据源 和 数据绑定控件 两部分,数据绑定控件通过数据源来获得数据,通过数据源来隔离数据提供者和数据使用者,数据源有:SqlDataSource,AccessDataSource,ObjectDataSource,LinqDataSource,XmlDataSource 等大部分不会直连接数据库,所以SqlDataSource,AccessDataSource不会使用ObjectDataSource 是WEB开发中应用最广的数据源,也能很容易的进行数据库切换数据绑

【转】Asp.net 用datalist嵌套的方法实现二级菜单的分类导航

刚开始学习Asp.net做网站的时候, 做的是一个电子图书购买网站,发现图书有多级类目.   例如:小说分类下面世界名著,中国古典小说.......  文学类目下有 文学理论 中国古典诗歌. 这些要是直接写死在网站里面的话,不利于后面去添加和修改分类,这样做的话是非常不利于后期网站维护的.那么有什么办法把两级分类数据都通过去后台输入,前台去读取呢?也就是这些分类存在数据库中,实现动态读取. 找了些资料,然后我整合下,终于可以应用到自己的网站了.  用的是Listview或者datalist嵌套.

ASP.NET数据绑定

数据绑定是ASP.NET提供的另一种访问数据库的方法.与ADO.NET数据库访问技术不同的是:数据绑定技术可以让程序员不关注数据库连接.数据库命令以及如何格式化这些数据以显示在页面上等环节,而是直接把数据绑定到HTML元素和Web控件. 数据控件则是用来显示从数据库中获取的数据. 数据绑定的原理: 首先要设置控件的数据源和数据的显示格式,设置完成后,控件就会自动处理剩余的工作以把要显示的数据按照要显示的格式显示在页面上. 数据绑定的类型  1. 单值绑定. 可以通过单值绑定的方式把数据添加到AS

ASP.NET(C#)——DataList控件——商品展示

<asp:DataList ID="Good" runat="server" DataKeyField="ID" DataSourceID="SqlDataSource1" RepeatColumns="4"> <ItemTemplate> <img src="../src/picture/<%#Eval("Image") %>&quo