通过使用模板显示数据源中的项。通过操作组成 DataList 控件的不同组件的模板(如 ItemTemplate 和 HeaderTemplate),可以自定义该控件的外观和内容。
     | 
|---|
<asp:DataList
????AccessKey="string"
????BackColor="color name|#dddddd"
????BorderColor="color name|#dddddd"
????BorderStyle="NotSet|None|Dotted|Dashed|Solid|Double|Groove|Ridge|
        Inset|Outset"
????BorderWidth="size"
????Caption="string"
????CaptionAlign="NotSet|Top|Bottom|Left|Right"
????CellPadding="integer"
????CellSpacing="integer"
????CssClass="string"
????DataKeyField="string"
????DataMember="string"
????DataSource="string"
????DataSourceID="string"
????EditItemIndex="integer"
????Enabled="True|False"
????EnableTheming="True|False"
????EnableViewState="True|False"
????ExtractTemplateRows="True|False"
????Font-Bold="True|False"
????Font-Italic="True|False"
????Font-Names="string"
????Font-Overline="True|False"
????Font-Size="string|Smaller|Larger|XX-Small|X-Small|Small|Medium|
        Large|X-Large|XX-Large"
????Font-Strikeout="True|False"
????Font-Underline="True|False"
????ForeColor="color name|#dddddd"
????GridLines="None|Horizontal|Vertical|Both"
????Height="size"
????HorizontalAlign="NotSet|Left|Center|Right|Justify"
????ID="string"
????OnCancelCommand="CancelCommand event handler"
????OnDataBinding="DataBinding event handler"
????OnDeleteCommand="DeleteCommand event handler"
????OnDisposed="Disposed event handler"
????OnEditCommand="EditCommand event handler"
????OnInit="Init event handler"
????OnItemCommand="ItemCommand event handler"
????OnItemCreated="ItemCreated event handler"
????OnItemDataBound="ItemDataBound event handler"
????OnLoad="Load event handler"
????OnPreRender="PreRender event handler"
????OnSelectedIndexChanged="SelectedIndexChanged event handler"
????OnUnload="Unload event handler"
????OnUpdateCommand="UpdateCommand event handler"
????RepeatColumns="integer"
????RepeatDirection="Horizontal|Vertical"
????RepeatLayout="Table|Flow"
????runat="server"
????SelectedIndex="integer"
????ShowFooter="True|False"
????ShowHeader="True|False"
????SkinID="string"
????Style="string"
????TabIndex="integer"
????ToolTip="string"
????UseAccessibleHeader="True|False"
????Visible="True|False"
????Width="size"
>
????????<AlternatingItemStyle />
????????<AlternatingItemTemplate>
            <!-- child controls -->
????????</AlternatingItemTemplate>
????????<EditItemStyle />
????????<EditItemTemplate>
            <!-- child controls -->
????????</EditItemTemplate>
????????<FooterStyle />
????????<FooterTemplate>
            <!-- child controls -->
????????</FooterTemplate>
????????<HeaderStyle />
????????<HeaderTemplate>
            <!-- child controls -->
????????</HeaderTemplate>
????????<ItemStyle />
????????<ItemTemplate>
            <!-- child controls -->
????????</ItemTemplate>
????????<SelectedItemStyle />
????????<SelectedItemTemplate>
            <!-- child controls -->
????????</SelectedItemTemplate>
????????<SeparatorStyle />
????????<SeparatorTemplate>
            <!-- child controls -->
????????</SeparatorTemplate>
</asp:DataList> | 
备注
示例
      
        
          下面的示例演示如何使用 DataList 控件来显示数据源中的项。
          | Visual Basic? |  复制代码 | 
|---|
<%@ 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>
 | 
| C#? |  复制代码 | 
|---|
<%@ 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>
 | 
 
        
      
     
请参见