ASP.NET数据绑定之DataList控件

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

数据绑定之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中的模板
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的实践篇,敬请关注!。

相关文档
最新文档