DataList学习

       DataList  服务器控件用可自定义的格式显示各行数据库信息。显示数据的格式在创建的模板中定义。可以为项、交替项、选定项和编辑项创建模板。也可以使用标题、脚注和分隔符模板自定义DataList的整体外观。通过在模板中包括 Button Web 服务器控件,可将列表项连接到代码,而这些代码允许用户在显示、选择和编辑模式之间进行切换。

       DataList主要有五个项模板:AlternatingItemTemplate(做为交替的显示形式)、EditItemTemplate(当行处于编辑状态时的显示方式)、FooterTemplate( 页脚的显示方式)、HeaderTemplate(页头的显示方式)、ItemTemplate(普通正常项的显示方式)和SelectedItemTemplate(当项被选中时的显示方式)及SeparatorTemplate(用于分离项与项之间的显示方式)。

       DataList属性:

                          RepeatColumns:DataList中要显示的列数。默认是0,即按照RepeatDirection的设置单行或者单列显示数据。

                          RepeatDirection:DataList的显示方式,这个属性是一个枚举值,有Horizontal和Vertical两个值,分别代表水平和垂直显示。

       DateList事件:

                       (1) DataList控件支持多种事件。其中的 ItemCreated 事件可让您在运行时自定义项的创建过程。ItemDataBound 事件还为您提供了自定义 DataList控件的能力,但需要在数据可用于检查之后。例如,如果您正使用 DataList控件显示任务列表,则可以用红色文本显示过期项,以黑色文本显示已完成项,以绿色文本显示其他任务。这两个事件都可用于重写来自模板定义的格式设置。

(2)其余事件为了响应列表项中的按钮单击而引发。这些事件旨在帮助您响应DataList 控件的最常用功能。支持该类型的四个事件:

  • EditCommand

  • DeleteCommand

  • UpdateCommand

  • CancelCommand

若要引发这些事件,可将 Button、LinkButton 或 ImageButton 控件添加到 DataList控件中的模板中,并将这些按钮的 CommandName 属性设置为某个关键字,如 editdeleteupdatecancel。当用户单击项中的某个按钮时,就会向该按钮的容器(DataList 控件)发送事件。按钮具体引发哪个事件将取决于所单击按钮的 CommandName 属性的值。例如,如果某个按钮的 CommandName 属性设置为 edit,则单击该按钮时将引发 EditCommand 事件。如果 CommandName 属性设置为 delete,则单击该按钮将引发 DeleteCommand 事件,依此类推。

   (3)

           控件还支持 ItemCommand 事件,当用户单击某个没有预定义命令(如 editdelete)的按钮时将引发该事件。您可以按照如下方法将此事件用于自定义功能:将某个按钮的 CommandName 属性设置为一个自己所需的值,然后在 ItemCommand 事件处理程序中测试这个值(要实现全选反选就可以这样)。当然对于上面的几个事件,也都可以通过设置CommandName来实现删除修改功能。

    (4).

            EditItemTemplate 通常包括多个允许用户保存或放弃更改的按钮(例如,“更新”“取消”按钮)。这些按钮的工作方式与“编辑”按钮类似,都是发送一条预定义命令消息(updatecancel)到 DataList 控件,进而引发 UpdateCommand 或 CancelCommand 事件,您可以相应地对这些事件做出响应。

 

总结(1)自己对DataList的使用。正常在删除修改都是做在通用模板项下面,然后通过EditCommand ,DeleteCommand ,UpdateCommand ,CancelCommand 这些事件来实现。而ItemCommand事件用来实现其他的事件响应。

(2)对于DataList主键的选取:首先在DataList的属性那边设置DataKeyField,然后通过this.DataList1.DataKeys[e.Item.ItemIndex]来获取。

posted @ 2010-07-18 20:20  雁北飞  阅读(422)  评论(0编辑  收藏  举报