收藏 分享(赏)

taList详解.doc

上传人:hwpkd79526 文档编号:9297517 上传时间:2019-08-01 格式:DOC 页数:11 大小:36KB
下载 相关 举报
taList详解.doc_第1页
第1页 / 共11页
taList详解.doc_第2页
第2页 / 共11页
taList详解.doc_第3页
第3页 / 共11页
taList详解.doc_第4页
第4页 / 共11页
taList详解.doc_第5页
第5页 / 共11页
点击查看更多>>
资源描述

1、taList 详解使用 DataList 控件 本章内容:1、理解事件冒泡2、使用模板3、在 DataList 中显示数据4、在 DataList 中创建多列5、捕获 DataList 控件中产生的事件6、选择 DataList 中的项7、使用 DataList 控件中的 DataKeys 集合8、编辑 DataList 中的项 本章介绍在 ASP.NET 框架中功能最强大的两个控件(DataList 控件和 DataGrid 控件)之一的 DataList 控件。我们将深入探讨DataList 控件,学习如何使用该控件显示数据以及编辑数据库数据。一、理解事件冒泡 在 ASP.NET 框架包含

2、三个支持事件冒泡的标准控件:Repeater、DataList 和 DataGrid 控件。这些控件可以让你捕获其子控件的时间。当子控件产生一个事件时,事件就“冒泡”传给包含该子控件的容器控件,并且容器控件就可以执行一个子程序来处理该事件。二、使用模板在前一章中我们已经介绍过 Repeater 控件的五个模板(ItemTemplate、AlternationgItemTemplate、SeparatorTemplate、HeaderTemplate、FooterTemplate) ,可以格式化控件的输出。在DataList 控件中除了支持 Repeater 控件中的五个模板以外,还支持如下两个

3、模板:1、SelectedItemTemplate:控制如何格式化被选定的项2、EditItemTemplate:控制如何格式化被编辑的项。当选定 DataList 中选中一个项时(即 DataList 的 SelectedIndex属性值为当前选定项的索引值) ,将显示 SelectedItem 模板,当在DataList 中选择一个项来编辑(即 DataList 的 EditItemIndex 属性值为当前选定项的索引值)时,将显示 EditItem 模板。三、在 DataList 中显示数据: 可以像 Repeater 控件那样来用 DataList 显示数据库表中的记录。但是,与 Re

4、peater 控件不同的是:DataList 控件的默认行为是在 HTML 表格中显示数据库记录。如下程序清单演示如何显示 pubs 数据库中 authors 表中的数据。void Page_Load(Object sender , EventArgs e)SqlConnection conn;SqlCommand cmd;SqlDataReader dr;conn = new SqlConnection( “Server=localhost; Database=Pubs;uid=cdd;psw=123“ );cmd = new SqlCommand( “Select au_fname Fro

5、m authors“, conn );conn.Open();dr = cmdSelect.ExecuteReader();DataList1.DataSource = dr;DataList1.DataBind();dr.Close();conn.Close(); DataList.aspx在 DataList 中显示记录时,authors 表中每行都显示在独立的 HTML 表格中,只要你愿意,也可以修改其 RepeatLayout 属性把 DataList 的项显示在 HTML 的中。在默认情况下,RepeatLayout 属性值为 Table。如果把 RepeatLayout 属性设为F

6、low,那么每个项就显示在中。当 RepeatLayout 属性为 Table 时,通过设置 GridLines 属性可以在每个单元格周围显示线条。GridLines 属性可选值有: Both / Horizontal / Vertical四、在 DataList 中创建多列 DataList 的一个好处的特征是可以以多个列显示数据现。通过设置其 RepeatColumns 和 RepeatDirection 属性,可以控制DataList 的列的布局。RepeatColumns 属性决定要显示的列的数量。比如,如果要在 DataList 中显示四列的项,那么可以把这个属性设为 4。Repea

7、tDirection 属性句顶列是按水平或垂直方向来重复。在默认情况下,RepeatDirection 值为 Vertical,因此,如果RepeatColumns 值为 4,则列就像这样显示:Column 1 Column3 Column5 Column7Column 2 Column4 Column6 Column8如果把 RepeatDirection 设为 Horizontal,而且 RepeatColumns 值为 4,那么列就像这样显示:Column 1 Column3 Column5 Column7Column 2 Column4 Column6 Column8注意,即使 Rep

8、eatDirection 值为 Vertical,还是显示为 4 个列。RepeatColumns 永远是指重复的列的数量,而不是行的数量。五、捕获 DataList 控件中产生的事件 正如第一小节中提到的那样,DataList 控件支持事件冒泡,可以捕获 DataList 内包含的控件产生的事件,并且通过普通的子程序处理这些事件。讲到这里有些人可能不太明白事件冒泡的好处所在,这样,我们反过来思考:如果没有事件冒泡,那么对于 DataList 内包含的每一个控件产生的事件都需要定义一个相应的处理函数,如果DataList 中包含 10000 个控件呢?或者更多呢?那我们得写多少个事件处理程序。

9、所以有了事件冒泡,不管 DataList 中包含多少个控件,我们只需要一个处理程序就可以了。DataList 控件支持五个事件: 1) EditCommand:由带有 CommandName=”edit”的子控件产生2) CancelCommand:由带有 CommandName=”cancel”的子控件产生3) UpdateCommand:由带有 CommandName=”update”的子控件产生4) DeleteCommand:由带有 CommandName=”delete”的子控件产生5) ItemCommand:DataList 的默认事件有了这五个事件,那么当我点击了 DataLi

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

11、ndName 分别为edit、delete、update 的 LinkButton 按钮。当点击不同的按钮时,在 DataList 中产生不同的事件,执行不同的程序:void Page_Load(Object sender , EventArgs e)if (! IsPostBack ) SqlConnection conn;SqlCommand cmd;SqlDataReader dr;conn = new SqlConnection( “Server=localhost; Database=Pubs;uid=cdd;psw=123“ );cmd = new SqlCommand( “Sel

12、ect au_fname From authors“, conn );conn.Open();dr = cmd.ExecuteReader();dlstTitles.DataSource = dr;dlstTitles.DataBind();dr.Close();conn.Close();void DataList1_ItemCommand( object s, DataListCommandEventArgs e ) lblMessage.Text = “Item Command!“;void DataList1_EditCommand( object s, DataListCommandE

13、ventArgs e ) lblMessage.Text += “Editing Item!“; void DataList1_DeleteCommand( object s, DataListCommandEventArgs e ) lblMessage.Text = “Deleting Item!“;void DataList1_UpdateCommand( object s, DataListCommandEventArgs e ) lblMessage.Text = “Updating Item!“;DataListEvents.aspx在 DataList 中显示的三个 LinkBu

14、tton 控件分别与相应的程序相关联。当点击名为 delete 的 LinkButton 控件的时候,就触发DataList 控件 DeleteCommand 事件,该事件与DataList1_DeleteCommand 函数相关联。大家注意到与 DataList 关联的函数都带有一个DataListCommandEventArgs 的参数。该阐述表示从 DataList 传递给该函数的信息。DataListCommandEventArgs 具有如下属性:CommandArgument:表示来自于产生该事件的控件的CommandArgument 属性值。CommandName:表示产生该事件的命令名称。CommandSource:表示产生该事件的 DataList 控件。Item:表示来自 DataList 的项。就是 DataList 中发生事件的那一项。该属性非常有用,在后面的章节中会经常使用到!

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报