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控件中的某一个button的时候,应该触发哪一个事件呢?什么时候才触发它们呢?

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

注意:ItemCommand事件是DataList控件产生的默认事件。不论什么DataList控件中CommandName为delete/cancel/update/edit的button被点击后,事件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的实践篇。敬请关注。!!

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

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

    前台代码: <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.as ...

  2. 028. asp.net数据绑定控件值DataList控件

    DataList控件可以使用模板与定义样式来显示数据并进行数据的选择, 删除及编辑工作. DataList控件的最大特点是一定要通过模板来定义数据的显示格式. 如果要设计出美观的界面, 就需要花费一番 ...

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

    上篇文章大概讲了DataList的一些基础知识,掌握这些知识在将来的应用中起到非常大的作用,如今我们就開始讲上篇文章中说的基础知识做一个小样例. 首先,我机子的数据库中有一张person表.例如以下图 ...

  4. ASP.NET数据绑定控件

    数据绑定控件简介 数据绑定分为:数据源 和 数据绑定控件 两部分,数据绑定控件通过数据源来获得数据,通过数据源来隔离数据提供者和数据使用者,数据源有:SqlDataSource,AccessDataS ...

  5. ASP.NET数据绑定控件简介

    •数据绑定分为数据源和数据绑定控件两部分(①数据绑定控件通过数据源获取和修改数据②数据绑定控件通过数据源隔离数据提供者和数据使用者)数据绑定控件→数据源→数据库•数据源:SqlDataSource(连 ...

  6. ASP.NET数据绑定技术

    1.DataBinder.Eval()方法 DataBinder.Eval()方法是ASP.NET框架支持的一个静态方法,用来计算Late_Bound(后期绑定)数据绑定表达式,并随时将结果转换为字符 ...

  7. 《ASP.NET1200例》ASP.Net 之Datalist数据删除(支持批量)

    .aspx <div> <asp:DataList ID="DataList1" runat="server" Width="355 ...

  8. ASP.NET数据绑定

    数据绑定是ASP.NET提供的另一种访问数据库的方法.与ADO.NET数据库访问技术不同的是:数据绑定技术可以让程序员不关注数据库连接.数据库命令以及如何格式化这些数据以显示在页面上等环节,而是直接把 ...

  9. ASP.NET 数据绑定常用代码及其性能分析

    用DataBinder.eval 绑定不必关心数据来源(Dataread或dataset).不必关心数据的类型eval会把这个数据对象转换为一个字符串.在底层绑定做了很多工作,使用了反射性能.正因为使 ...

随机推荐

  1. BNUOJ 19297 Code Refactoring

    Code Refactoring Time Limit: 3000ms Memory Limit: 131072KB   This problem will be judged on UVA. Ori ...

  2. Leetcode 336.回文对

    回文对 给定一组唯一的单词, 找出所有不同 的索引对(i, j),使得列表中的两个单词, words[i] + words[j] ,可拼接成回文串. 示例 1: 输入: ["abcd&quo ...

  3. 九度oj 题目1025:最大报销额

    题目描述:     现有一笔经费可以报销一定额度的发票.允许报销的发票类型包括买图书(A类).文具(B类).差旅(C类),要求每张发票的总额不得超过1000元,每张发票上,单项物品的价值不得超过600 ...

  4. 【Luogu】P1967货车运输(最大生成森林+倍增LCA)

    题目链接 倍增LCA是个什么蛇皮原理啊,循环完了还得再往上跳一次才能到最近公共祖先 合着我昨天WA两次就是因为这个 建最大生成森林,因为图不一定是联通的,所以不一定是一棵树.这个地方用克鲁斯卡尔就好了 ...

  5. BZOJ 2140 稳定婚姻 ——二分图

    论二分图的可行边与必须边. 考虑用dinic增广之后的图,一些是必要的割边,一些是可行的割边. 我们首先求出一组可行的最大匹配,那么这些变都是可行的. 然后我们求一遍强连通分量. 如果 scc[u]! ...

  6. BZOJ 2820 YY的GCD ——莫比乌斯反演

    我们可以枚举每一个质数,那么答案就是 $\sum_{p}\sum_{d<=n}\mu(d)*\lfloor n / pd \rfloor *\lfloor m / pd \rfloor$ 直接做 ...

  7. Mychael原创题 洛谷T23923 Mychaelの水题 【题解】

    原题链接 题目大意: 有来自三个地区的人各a,b,c位,他们排成了一排.请问有多少种不同类型的排法,使得相邻的人都来自不同的地区 \(a,b,c<=200\) 答案取模 题解 弱弱的标程解法 设 ...

  8. leetcode 206 头插法

    头插法,定义temp,Node temp指向每次头结点,Node每次指向要进行头插的节点. 最后返回temp /** * Definition for singly-linked list. * st ...

  9. 在VMWare下为CentOS设置静态IP通过NAT访问外网

    一.背景 安装好的CentOS系统默认是通过DHCP自动分配地址来共享主机的IP以达到访问外网的目的,但是因为莫名的原因无法访问外网.只好改为通过静态IP的方式访问外网. 二.操作步骤 2.1 确认开 ...

  10. 垃圾收集器与内存分配策略 (深入理解JVM二)

    1.概述 垃圾收集(Garbage Collection,GC). 当需要排查各种内存溢出.内存泄露问题时,当垃圾收集成为系统达到更高并发量的瓶颈时,我们就需要对这些“自动化”的技术实施必要的监控和调 ...