<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 网页中验证用户输入。
下面的代码示例演示如何使用 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>
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 并不是对每个平台的所有版本都提供支持。有关受支持版本的列表,请参见系统要求。
在Visual Studio 2005里如果将页面定位设置成为了"绝对定位",那么从IDE里拖曳进DataList模板的控件只会显示一次,而且绑定到集合的时候显示会重叠.
请将页面改为自动定位即可.