DataList控件是·NET中的一个控件。DataList控件以表的形式呈现数据,通过该控件,您可以使用不同的布局来显示数据记录,例如,将数据记录排成列或行的形式。您可以对 DataList控件进行配置,使用户能够编辑或删除表中的记录。(DataList控件不使用数据源控件的数据修改功能;您必须自己提供此代码。)DataList控件与 Repeater 控件的不同之处在于:DataList控件将项显式放在HTML表中,而Repeater控件则不然。
简介
DataList控件用于显示限制于该控件的项目的重复列表,其使用方式和Repeater控件相似,也是使用模板标记。不过,DataList控件会默认地在数据项目上添加表格,而且正是由于它使用模板进行设计,所以它的灵活性比GridView更高,DataList控件可被绑定到数据库表、XML文件或者其他项目列表, DataList 控件新增 SelectedItemTemplate 和 EditItemTemplate 模板标记,可以支持选取和编辑功能。
控件使用
目录
1、理解事件冒泡
2、使用模板
3、在DataList中显示数据
4、在DataList中创建多列
5、捕获DataList控件中产生的事件
6、选择DataList中的项
7、使用DataList控件中的DataKeys集合
8、编辑DataList中的项
理解事件冒泡
在“NET”框架包含三个支持事件冒泡的标准控件:Repeater、DataList和DataGrid控件。这些控件可以让你捕获其子控件的事件。当子控件产生一个事件时,事件就“冒泡”传给包含该子控件的容器控件,并且容器控件就可以执行一个子程序来处理该事件。
使用模板
Repeater控件的五个模板(ItemTemplate、AlternationgItemTemplate、SeparatorTemplate、HeaderTemplate、FooterTemplate),可以格式化控件的输出。
在DataList控件中除了支持Repeater控件中的五个模板以外,还支持如下两个模板:
1、SelectedItemTemplate:控制如何格式化被选定的项
2、EditItemTemplate:控制如何格式化被编辑的项。
当选定DataList中选中一个项时(即DataList的SelectedIndex属性值为当前选定项的索引值),将显示SelectedItem模板,当在DataList中选择一个项来编辑(即DataList的EditItemIndex属性值为当前选定项的索引值)时,将显示EditItem模板。
在DataList中显示数据
可以像Repeater控件那样来用DataList显示数据库表中的记录。但是,与Repeater控件不同的是:DataList控件的默认行为是在HTML表格中显示数据库记录。
如下程序清单演示如何显示pubs数据库中authors表中的数据:
<%@ Page Language="C#"%>
<%@ Import Namespace="System.Data.SqlClient" %>
<script runat=server>
void Page_Load(Object sender , EventArgs e)
{
SqlConnection conn;
SqlCommand cmd;
SqlDataReaderdr;
更新数据库表。最后不要忘了重新绑定一下,否则数据库里最新的数据将不会显示出来。
(如果要在更新前对更新后的数据进行验证,则可以在EditItemTemplate模板中加入验证控件进行验证。)
HTML
定义和用法
<datalist> 标签定义选项列表。请与 input 元素配合使用该元素,来定义 input 可能的值。
datalist 及其选项不会被显示出来,它仅仅是合法的输入值列表。
请使用 input 元素的 list属性来绑定 datalist 。
提示:不能控制 datalist 的位置,并且不能将其与服务器的数据进行绑定。
<datalist> 标签是 HTML5 中的新标签。
全局属性
accesskey、class、contenteditable、contextmenu、data-*、draggable、dir、hidden、spellcheck、style、tabindex、title[1]
实例
<input id="myCar" list="cars" />
<datalist id="cars">
<option value="BMW">
<option value="Ford">
<option value="Volvo">
</datalist>
浏览器支持
目前只有 Firefox 和 Opera 支持 <datalist> 标签。[2]