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 控件的内容可以通过使用模板操控。下表列出了支持的模板。

模板名称

说明

AlternatingItemTemplate

如果已定义,则为 DataList 中的交替项提供内容和布局。如果未定义,则使用 ItemTemplate

EditItemTemplate

如果已定义,则为 DataList 中当前编辑的项提供内容和布局。如果未定义,则使用 ItemTemplate

FooterTemplate

如果已定义,则为 DataList 的脚注部分提供内容和布局。如果未定义,将不显示脚注部分。

HeaderTemplate

如果已定义,则为 DataList 的页眉节提供内容和布局。如果未定义,将不显示页眉节。

ItemTemplate

DataList 中的项提供内容和布局所要求的模板。

SelectedItemTemplate

如果已定义,则为 DataList 中当前选定项提供内容和布局。如果未定义,则使用 ItemTemplate

SeparatorTemplate

如果已定义,则为 DataList 中各项之间的分隔符提供内容和布局。如果未定义,将不显示分隔符。

至少,需要定义 ItemTemplate 以显示 DataList 控件中的项。可以使用附加的模板来提供 DataList 控件的自定义外观。

可以通过为 DataList 控件的不同部分设置样式属性来自定义该控件的外观。下表列出了不同的样式属性。

样式属性

说明

AlternatingItemStyle

指定 DataList 控件中交替项的样式。

EditItemStyle

指定 DataList 控件中正在编辑的项的样式。

FooterStyle

指定 DataList 控件中页脚的样式。

HeaderStyle

指定 DataList 控件中页眉的样式。

ItemStyle

指定 DataList 控件中项的样式。

SelectedItemStyle

指定 DataList 控件中选定项的样式。

SeparatorStyle

指定 DataList 控件中各项之间的分隔符的样式。

也可以显示或隐藏控件的不同部分。下表列出控制显示或隐藏哪些部分的属性。

属性

说明

ShowFooter

显示或隐藏 DataList 控件的页脚部分。

ShowHeader

显示或隐藏 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 安全性

继承层次结构

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 网页代码模型