DataList 类
显示使用模板的项的数据绑定列表控件。
**命名空间:**System.Web.UI.WebControls
**程序集:**System.Web(在 system.web.dll 中)
语法
声明
<ControlValuePropertyAttribute("SelectedValue")> _
Public Class DataList
Inherits BaseDataList
Implements INamingContainer, IRepeatInfoUser
用法
Dim instance As DataList
[ControlValuePropertyAttribute("SelectedValue")]
public class DataList : BaseDataList, INamingContainer, IRepeatInfoUser
[ControlValuePropertyAttribute(L"SelectedValue")]
public ref class DataList : public BaseDataList, INamingContainer, IRepeatInfoUser
/** @attribute ControlValuePropertyAttribute("SelectedValue") */
public class DataList extends BaseDataList implements INamingContainer, IRepeatInfoUser
ControlValuePropertyAttribute("SelectedValue")
public class DataList extends BaseDataList implements INamingContainer, IRepeatInfoUser
备注
使用 DataList 控件显示模板定义的数据绑定列表。DataList 控件支持选择和编辑。
DataList 控件的内容可以通过使用模板操控。下表列出了支持的模板。
模板名称 |
说明 |
---|---|
如果已定义,则为 DataList 中的交替项提供内容和布局。如果未定义,则使用 ItemTemplate。 |
|
如果已定义,则为 DataList 中当前编辑的项提供内容和布局。如果未定义,则使用 ItemTemplate。 |
|
如果已定义,则为 DataList 的脚注部分提供内容和布局。如果未定义,将不显示脚注部分。 |
|
如果已定义,则为 DataList 的页眉节提供内容和布局。如果未定义,将不显示页眉节。 |
|
为 DataList 中的项提供内容和布局所要求的模板。 |
|
如果已定义,则为 DataList 中当前选定项提供内容和布局。如果未定义,则使用 ItemTemplate。 |
|
如果已定义,则为 DataList 中各项之间的分隔符提供内容和布局。如果未定义,将不显示分隔符。 |
至少,需要定义 ItemTemplate 以显示 DataList 控件中的项。可以使用附加的模板来提供 DataList 控件的自定义外观。
可以通过为 DataList 控件的不同部分设置样式属性来自定义该控件的外观。下表列出了不同的样式属性。
样式属性 |
说明 |
---|---|
指定 DataList 控件中交替项的样式。 |
|
指定 DataList 控件中正在编辑的项的样式。 |
|
指定 DataList 控件中页脚的样式。 |
|
指定 DataList 控件中页眉的样式。 |
|
指定 DataList 控件中项的样式。 |
|
指定 DataList 控件中选定项的样式。 |
|
指定 DataList 控件中各项之间的分隔符的样式。 |
也可以显示或隐藏控件的不同部分。下表列出控制显示或隐藏哪些部分的属性。
属性 |
说明 |
---|---|
显示或隐藏 DataList 控件的页脚部分。 |
|
显示或隐藏 DataList 控件的页眉部分。 |
DataList 控件的显示方向可以是垂直或水平的。设置 RepeatDirection 属性以指定显示方向。
DataList 控件的布局由 RepeatLayout 属性控制。将此属性设置为 RepeatLayout.Table 将以表的形式显示 DataList;而设置为 RepeatLayout.Flow 将显示不具有表结构的 DataList。
警告
此控件可用来显示用户输入,而该输入可能包含恶意的客户端脚本。在您的应用程序中显示从客户端发送来的信息之前,先检查这些信息中是否有可执行脚本、SQL 语句或其他代码。可以在将输入文本显示在控件中之前使用验证控件验证用户输入。ASP.NET 提供了输入请求验证功能,可以阻止用户输入中的脚本和 HTML 代码。有关更多信息,请参见 保证标准控件的安全、如何:通过对字符串应用 HTML 编码在 Web 应用程序中防止脚本侵入 和 在 ASP.NET 网页中验证用户输入。
主题 | 位置 |
---|---|
如何:创建 ASP.NET Web 服务器控件模板 | 生成 ASP .NET Web 应用程序 |
演练:使用转换在 Web 窗体页中显示 XML 文档 | 在 Visual Studio 中构建 ASP .NET Web 应用程序 |
演练:使用 DataList Web 服务器控件显示并格式化数据 | 在 Visual Studio 中构建 ASP .NET Web 应用程序 |
如何:向 ASP.NET 网页添加 DataList Web 服务器控件 (Visual Studio) | 在 Visual Studio 中构建 ASP .NET Web 应用程序 |
演练:创建网页以显示 XML 数据 | 在 Visual Studio 中构建 ASP .NET Web 应用程序 |
演练:到自定义业务对象的数据绑定 | 在 Visual Studio 中构建 ASP .NET Web 应用程序 |
如何:使用设计器创建 Web 服务器控件模板 | 在 Visual Studio 中构建 ASP .NET Web 应用程序 |
演练:在 Visual Web Developer 中创建和使用 ASP.NET 母版页 | 在 Visual Studio 中构建 ASP .NET Web 应用程序 |
如何:绑定到 Visual Studio 的模板化控件中的数据 | 在 Visual Studio 中构建 ASP .NET Web 应用程序 |
演练:在 Visual Studio 中创建主/详细信息网页 | 在 Visual Studio 中构建 ASP .NET Web 应用程序 |
演练:在 Visual Web Developer 中创建和使用 ASP.NET 母版页 | 使用 Visual Web Developer 生成应用程序 |
演练:在 Visual Studio 中创建主/详细信息网页 | 使用 Visual Web Developer 生成应用程序 |
如何:在 DataList Web 服务器控件中动态自定义项 | 在 Visual Studio 中生成 ASP .NET Web 应用程序 |
如何:允许用户删除 DataList Web 服务器控件中的项 | 在 Visual Studio 中生成 ASP .NET Web 应用程序 |
如何:以声明方式创建 ASP.NET Web 控件模板 | 在 Visual Studio 中生成 ASP .NET Web 应用程序 |
如何:指定 DataList Web 服务器控件中的水平或垂直布局 | 在 Visual Studio 中生成 ASP .NET Web 应用程序 |
如何:以编程方式向 ASP.NET 网页添加控件 | 在 Visual Studio 中生成 ASP .NET Web 应用程序 |
演练:使用 DataList Web 服务器控件显示并格式化数据 | 在 Visual Studio 中生成 ASP .NET Web 应用程序 |
如何:使用设计器创建 Web 服务器控件模板 | 在 Visual Studio 中生成 ASP .NET Web 应用程序 |
如何:动态创建 ASP.NET Web 服务器控件模板 | 在 Visual Studio 中生成 ASP .NET Web 应用程序 |
如何:允许用户编辑 DataList Web 服务器控件中的项 | 在 Visual Studio 中生成 ASP .NET Web 应用程序 |
演练:创建网页以显示 XML 数据 | 在 Visual Studio 中生成 ASP .NET Web 应用程序 |
如何:在模板化控件中绑定到数据 | 在 Visual Studio 中生成 ASP .NET Web 应用程序 |
演练:到自定义业务对象的数据绑定 | 在 Visual Studio 中生成 ASP .NET Web 应用程序 |
如何:允许用户选择 DataList Web 服务器控件中的项 | 在 Visual Studio 中生成 ASP .NET Web 应用程序 |
如何:将 DataList Web 服务器控件添加到 ASP.NET 网页 | 在 Visual Studio 中生成 ASP .NET Web 应用程序 |
如何:在运行时自定义 DataList 项 | 在 Visual Studio 中生成 ASP .NET Web 应用程序 |
如何:绑定到 Visual Studio 的模板化控件中的数据 | 在 Visual Studio 中生成 ASP .NET Web 应用程序 |
如何:响应数据绑定控件中的按钮事件 | 在 Visual Studio 中生成 ASP .NET Web 应用程序 |
如何:在 DataList Web 服务器控件中指定流格式或表格式 | 在 Visual Studio 中生成 ASP .NET Web 应用程序 |
如何:响应 DataList 或 Repeater 项中的按钮事件 | 在 Visual Studio 中生成 ASP .NET Web 应用程序 |
演练:使用转换在 Web 窗体页中显示 XML 文档 | 在 Visual Studio 中生成 ASP .NET Web 应用程序 |
如何:在 DataList Web 服务器控件中动态自定义项 | 在 Visual Studio 中生成 ASP .NET Web 应用程序 |
如何:允许用户删除 DataList Web 服务器控件中的项 | 在 Visual Studio 中生成 ASP .NET Web 应用程序 |
如何:以声明方式创建 ASP.NET Web 控件模板 | 在 Visual Studio 中生成 ASP .NET Web 应用程序 |
如何:指定 DataList Web 服务器控件中的水平或垂直布局 | 在 Visual Studio 中生成 ASP .NET Web 应用程序 |
如何:以编程方式向 ASP.NET 网页添加控件 | 在 Visual Studio 中生成 ASP .NET Web 应用程序 |
演练:使用 DataList Web 服务器控件显示并格式化数据 | 在 Visual Studio 中生成 ASP .NET Web 应用程序 |
如何:使用设计器创建 Web 服务器控件模板 | 在 Visual Studio 中生成 ASP .NET Web 应用程序 |
如何:动态创建 ASP.NET Web 服务器控件模板 | 在 Visual Studio 中生成 ASP .NET Web 应用程序 |
如何:允许用户编辑 DataList Web 服务器控件中的项 | 在 Visual Studio 中生成 ASP .NET Web 应用程序 |
演练:创建网页以显示 XML 数据 | 在 Visual Studio 中生成 ASP .NET Web 应用程序 |
如何:在模板化控件中绑定到数据 | 在 Visual Studio 中生成 ASP .NET Web 应用程序 |
演练:到自定义业务对象的数据绑定 | 在 Visual Studio 中生成 ASP .NET Web 应用程序 |
如何:允许用户选择 DataList Web 服务器控件中的项 | 在 Visual Studio 中生成 ASP .NET Web 应用程序 |
如何:将 DataList Web 服务器控件添加到 ASP.NET 网页 | 在 Visual Studio 中生成 ASP .NET Web 应用程序 |
如何:在运行时自定义 DataList 项 | 在 Visual Studio 中生成 ASP .NET Web 应用程序 |
如何:绑定到 Visual Studio 的模板化控件中的数据 | 在 Visual Studio 中生成 ASP .NET Web 应用程序 |
如何:响应数据绑定控件中的按钮事件 | 在 Visual Studio 中生成 ASP .NET Web 应用程序 |
如何:在 DataList Web 服务器控件中指定流格式或表格式 | 在 Visual Studio 中生成 ASP .NET Web 应用程序 |
如何:响应 DataList 或 Repeater 项中的按钮事件 | 在 Visual Studio 中生成 ASP .NET Web 应用程序 |
演练:使用转换在 Web 窗体页中显示 XML 文档 | 在 Visual Studio 中生成 ASP .NET Web 应用程序 |
如何:在 DataList Web 服务器控件中动态自定义项 | 生成 ASP .NET Web 应用程序 |
如何:向 ASP.NET 网页添加 DataList 控件 | 生成 ASP .NET Web 应用程序 |
如何:允许用户删除 DataList Web 服务器控件中的项 | 生成 ASP .NET Web 应用程序 |
如何:以声明方式创建 ASP.NET Web 控件模板 | 生成 ASP .NET Web 应用程序 |
如何:指定 DataList Web 服务器控件中的水平或垂直布局 | 生成 ASP .NET Web 应用程序 |
如何:以编程方式向 ASP.NET 网页添加控件 | 生成 ASP .NET Web 应用程序 |
如何:动态创建 ASP.NET Web 服务器控件模板 | 生成 ASP .NET Web 应用程序 |
如何:允许用户编辑 DataList Web 服务器控件中的项 | 生成 ASP .NET Web 应用程序 |
如何:在模板化控件中绑定到数据 | 生成 ASP .NET Web 应用程序 |
如何:允许用户选择 DataList Web 服务器控件中的项 | 生成 ASP .NET Web 应用程序 |
如何:在运行时自定义 DataList 项 | 生成 ASP .NET Web 应用程序 |
如何:响应数据绑定控件中的按钮事件 | 生成 ASP .NET Web 应用程序 |
如何:在 DataList Web 服务器控件中指定流格式或表格式 | 生成 ASP .NET Web 应用程序 |
如何:响应 DataList、Repeater 或 GridView 项中的按钮事件 | 生成 ASP .NET Web 应用程序 |
示例
下面的代码示例演示如何使用 DataList 控件显示来自数据源的项的列表。
提示
以下代码示例使用单文件代码模型,当它直接复制到代码隐藏文件时可能不能正常工作。此代码示例必须被复制到具有 .aspx 扩展名的空文本文件中。有关 Web 窗体代码模型的更多信息,请参见 ASP.NET 网页代码模型。
<%@ Page Language="VB" AutoEventWireup="True" %>
<%@ Import Namespace="System.Data" %>
<html>
<script runat="server">
Function CreateDataSource() As ICollection
' Create sample data for the DataList control.
Dim dt As DataTable = New DataTable()
dim dr As DataRow
' Define the columns of the table.
dt.Columns.Add(New DataColumn("IntegerValue", GetType(Int32)))
dt.Columns.Add(New DataColumn("StringValue", GetType(String)))
dt.Columns.Add(New DataColumn("CurrencyValue", GetType(Double)))
dt.Columns.Add(New DataColumn("ImageValue", GetType(String)))
' Populate the table with sample values.
Dim i As Integer
For i = 0 To 8
dr = dt.NewRow()
dr(0) = i
dr(1) = "Description for item " & i.ToString()
dr(2) = 1.23 * (i + 1)
dr(3) = "Image" & i.ToString() & ".jpg"
dt.Rows.Add(dr)
Next i
Dim dv As DataView = New DataView(dt)
Return dv
End Function
Sub Page_Load(sender As Object, e As EventArgs)
' Load sample data only once, when the page is first loaded.
If Not IsPostBack Then
ItemsList.DataSource = CreateDataSource()
ItemsList.DataBind()
End If
End Sub
</script>
<body>
<form runat=server>
<h3>DataList Example</h3>
<asp:DataList id="ItemsList"
BorderColor="black"
CellPadding="5"
CellSpacing="5"
RepeatDirection="Vertical"
RepeatLayout="Table"
RepeatColumns="3"
ShowBorder="True"
runat="server">
<HeaderStyle BackColor="#aaaadd">
</HeaderStyle>
<AlternatingItemStyle BackColor="Gainsboro">
</AlternatingItemStyle>
<HeaderTemplate>
List of items
</HeaderTemplate>
<ItemTemplate>
Description: <br>
<%# DataBinder.Eval(Container.DataItem, "StringValue") %>
<br>
Price: <%# DataBinder.Eval(Container.DataItem, "CurrencyValue", "{0:c}") %>
<br>
<asp:Image id="ProductImage"
ImageUrl='<%# DataBinder.Eval(Container.DataItem, "ImageValue") %>'
runat="server"/>
</ItemTemplate>
</asp:DataList>
</form>
</body>
</html>
<%@ Page Language="C#" AutoEventWireup="True" %>
<%@ Import Namespace="System.Data" %>
<html>
<script runat="server">
ICollection CreateDataSource()
{
// Create sample data for the DataList control.
DataTable dt = new DataTable();
DataRow dr;
// Define the columns of the table.
dt.Columns.Add(new DataColumn("IntegerValue", typeof(Int32)));
dt.Columns.Add(new DataColumn("StringValue", typeof(String)));
dt.Columns.Add(new DataColumn("CurrencyValue", typeof(double)));
dt.Columns.Add(new DataColumn("ImageValue", typeof(String)));
// Populate the table with sample values.
for (int i = 0; i < 9; i++)
{
dr = dt.NewRow();
dr[0] = i;
dr[1] = "Description for item " + i.ToString();
dr[2] = 1.23 * (i + 1);
dr[3] = "Image" + i.ToString() + ".jpg";
dt.Rows.Add(dr);
}
DataView dv = new DataView(dt);
return dv;
}
void Page_Load(Object sender, EventArgs e)
{
// Load sample data only once, when the page is first loaded.
if (!IsPostBack)
{
ItemsList.DataSource = CreateDataSource();
ItemsList.DataBind();
}
}
</script>
<body>
<form runat=server>
<h3>DataList Example</h3>
<asp:DataList id="ItemsList"
BorderColor="black"
CellPadding="5"
CellSpacing="5"
RepeatDirection="Vertical"
RepeatLayout="Table"
RepeatColumns="3"
ShowBorder="True"
runat="server">
<HeaderStyle BackColor="#aaaadd">
</HeaderStyle>
<AlternatingItemStyle BackColor="Gainsboro">
</AlternatingItemStyle>
<HeaderTemplate>
List of items
</HeaderTemplate>
<ItemTemplate>
Description: <br>
<%# DataBinder.Eval(Container.DataItem, "StringValue") %>
<br>
Price: <%# DataBinder.Eval(Container.DataItem, "CurrencyValue", "{0:c}") %>
<br>
<asp:Image id="ProductImage"
ImageUrl='<%# DataBinder.Eval(Container.DataItem, "ImageValue") %>'
runat="server"/>
</ItemTemplate>
</asp:DataList>
</form>
</body>
</html>
.NET Framework 安全性
- AspNetHostingPermission 用于在宿主环境中进行操作。要求值:LinkDemand;权限值:Minimal。
- AspNetHostingPermission 用于在宿主环境中进行操作。要求值:InheritanceDemand;权限值:Minimal。
继承层次结构
System.Object
System.Web.UI.Control
System.Web.UI.WebControls.WebControl
System.Web.UI.WebControls.BaseDataList
System.Web.UI.WebControls.DataList
线程安全
此类型的任何公共静态(Visual Basic 中的 Shared)成员都是线程安全的,但不保证所有实例成员都是线程安全的。
平台
Windows 98、Windows 2000 SP4、Windows Server 2003、Windows XP Media Center Edition、Windows XP Professional x64 Edition、Windows XP SP2、Windows XP Starter Edition
.NET Framework 并不是对每个平台的所有版本都提供支持。有关受支持版本的列表,请参见系统要求。
版本信息
.NET Framework
受以下版本支持:2.0、1.1、1.0
请参见
参考
DataList 成员
System.Web.UI.WebControls 命名空间
BaseDataList 类
DataGrid 类
Repeater
其他资源
DataList Web 服务器控件
保证标准控件的安全
如何:通过对字符串应用 HTML 编码在 Web 应用程序中防止脚本侵入
在 ASP.NET 网页中验证用户输入
ASP.NET 网页代码模型