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中的模板
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-11-03 20:26:24

ASP.NET数据绑定之DataList控件_实用技巧的相关文章

ASP.NET数据绑定之GridView控件_实用技巧

GridView 是 DataGrid的后继控件,在.net framework 2 中,虽然还存在DataGrid,但是GridView已经走上了历史的前台,取代DataGrid的趋势已是势不挡. 作用:其功能是在web页面中显示数据源中的数据.GridView和DataGrid功能相似,都是在web页面中显示数据源中的数据,将数据源中的一行数据,也就是一条记录,显示为在web页面上输出表格中的一行.     在此GirdView的详细属性和事件我不再阐述.下面我只是简单介绍一下GirdVie

灵活使用asp.net中的gridview控件_实用技巧

gridview是asp.net常用的显示数据控件,对于.net开发人员来说应该是非常的熟悉了.gridview自带有许多功能,包括分页,排序等等,但是作为一个.net开发人员来说熟练掌握利用存储过程分页或者第三方自定义分页十分重要,这不仅是项目的需要,也是我们经验能力的提示,下面我就来讲利用存储过程分页实现绑定gridview 1.执行存储过程         网上有许多sql分页存储过程的例子,但是你会发现其中有许多一部分是不能用的,例如有些使用in或者not in来分页效率非常的低,有些s

LiteralControl ASP.NET中的另类控件_实用技巧

首先看一个aspx文件里的部分内容: 复制代码 代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head id="

如何在asp.net中使用FreeTextBox控件_实用技巧

步骤一:解压FreeTextBox-3.1.6只要将FreeTextBox.dll.ftb.imagegallery.aspx和aspnet_client文件夹拷贝到项目文件夹中,和我们的test.aspx在相同的目录下中,其中FreeTextBox.dll放到bin文件夹下并且在VS2008中添加引用(其实FreeTextBox.dll不需要拷贝进项目文件夹,只需要"解决方案->右键->添加引用"后bin文件夹中会自动产生FreeTextBox.dll). 步骤二:将Fr

ASP.NET 控件开发系列之图片切换web控件_实用技巧

开发系列之图片切换web控件_实用技巧-">贴出来控件页面的代码. PicList.ascx 复制代码 代码如下: <%@ Control Language="C#" AutoEventWireup="true" CodeFile="PicList.ascx.cs" Inherits="WebParts_PicList" %> <style type="text/css"&

ASP.NET数据绑定之DataList控件实战篇_实用技巧

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

asp.net下Repeater使用 AspNetPager分页控件_实用技巧

一.AspNetPager分页控件 分页是Web应用程序中最常用到的功能之一,在ASP.NET中,虽然自带了一个可以分页的DataGrid(asp.net 1.1)和GridView(asp.net 2.0)控件,但其分页功能并不尽如人意,如可定制性差.无法通过Url实现分页功能等,而且有时候我们需要对DataList和Repeater甚至自定义数据绑定控件进行分页,手工编写分页代码不但技术难度大.任务繁琐而且代码重用率极低,因此分页已成为许多ASP.NET程序员最头疼的问题之一. AspNet

Asp.net自定义控件之单选、多选控件_实用技巧

本文实例为大家分享了Asp.net单选.复选框控件的具体实现代码,供大家参考,具体内容如下 将常用的jquery插件封装成控件也是个不错的选择. 先看看效果: 1.新建类库项目,创建数据源类 [Serializable] public class Select2Item { public bool Selected { get; set; } public string Text { get; set; } public string Value { get; set; } public Sel

ASP.NET MVC引入JQUERY JQRTE控件_实用技巧

主要步骤如下: 1,在asp.net mvc项目中引入jqrte类库,声明辅助类用于存储服务器端上载文件的信息 复制代码 代码如下: public class ViewDataUploadFilesResult { public string message { get; set; } //public int Length { get; set; } public string imagepath { get; set; } public string error { get; set; }