DataList.ExtractTemplateRows Eigenschap

Definitie

Hiermee wordt een waarde opgehaald of ingesteld die aangeeft of de rijen van een Table besturingselement, gedefinieerd in elke sjabloon van een DataList besturingselement, worden geëxtraheerd en weergegeven.

public:
 virtual property bool ExtractTemplateRows { bool get(); void set(bool value); };
public virtual bool ExtractTemplateRows { get; set; }
member this.ExtractTemplateRows : bool with get, set
Public Overridable Property ExtractTemplateRows As Boolean

Waarde van eigenschap

true als de rijen van een Table besturingselement, gedefinieerd in elke sjabloon van een DataList besturingselement, worden geëxtraheerd en weergegeven; falseanders. De standaardwaarde is false.

Voorbeelden

In het volgende codevoorbeeld ziet u hoe u de ExtractTemplateRows eigenschap gebruikt om de rijen met Table besturingselementen te extraheren en weer te geven die zijn gedefinieerd in de sjablonen van het DataList besturingselement.

Note

Het volgende codevoorbeeld maakt gebruik van het codemodel met één bestand en werkt mogelijk niet correct als deze rechtstreeks naar een codeachterstaand bestand wordt gekopieerd. Dit codevoorbeeld moet worden gekopieerd naar een leeg tekstbestand met een .aspx-extensie. Zie ASP.NET Web Forms Page Code Model voor meer informatie over het webformuliercodemodel.

<%@ Page Language="C#" AutoEventWireup="True" %>
<%@ Import Namespace="System.Data" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <script runat="server">

        private ICollection CreateDataSource()
        {
            DataTable dt = new DataTable();
            DataRow dr;

            dt.Columns.Add(new DataColumn("StringValue", 
                typeof(string)));
            dt.Columns.Add(new DataColumn("PriceValue", 
                typeof(string)));
            dt.Columns.Add(new DataColumn("DescriptionValue", 
                typeof(string)));

            for (int i = 1; i < 11; i++)
            {
                dr = dt.NewRow();
                dr[0] = "Item " + i.ToString();
                dr[1] = String.Format("{0:C}", (1.23 * (i + 1)));
                dr[2] = "Description for Item " + i.ToString();
                dt.Rows.Add(dr);
            }

            DataView dv = new DataView(dt);
            return dv;
        }

        private void Page_Load(Object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                DataList1.DataSource = CreateDataSource();
                DataList1.DataBind();
            }
        }
    </script>

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>
        ExtractTemplateRows Example
    </title>
</head>
<body>
    <form id="form1" runat="server">

    <h3>DataList ExtractTemplateRows Example</h3>

    <asp:DataList id="DataList1" runat="server"
        BorderColor="black"
        CellPadding="3"
        Font-Names="Arial, Helvetica"
        Font-Size="9pt"
        ExtractTemplateRows="true"
        GridLines="Both">

        <HeaderStyle BackColor="LightBlue" />
        <AlternatingItemStyle BackColor="#efefef" />

        <HeaderTemplate>
        <asp:Table id="Table1" runat="server">
            <asp:TableRow>
                <asp:TableHeaderCell
                    ColumnSpan="2">
                    Items List
                </asp:TableHeaderCell>
            </asp:TableRow>
        </asp:Table>
        </HeaderTemplate>

        <ItemTemplate>
            <asp:Table id="Table2" runat="server">
                <asp:TableRow>
                    <asp:TableCell 
                        Text='<%# Eval("StringValue") %>'>
                    </asp:TableCell>
                    <asp:TableCell 
                        HorizontalAlign="Right"
                        Text='<%# Eval("PriceValue") %>'>
                    </asp:TableCell>
                </asp:TableRow>
                <asp:TableRow>
                    <asp:TableCell
                        ColumnSpan="2" 
                        Text='<%# Eval("DescriptionValue") %>'>
                    </asp:TableCell>
                </asp:TableRow>
            </asp:Table>
        </ItemTemplate> 
    </asp:DataList>
 
   </form>
</body>
</html>
<%@ Page Language="VB" %>
<%@ Import Namespace="System.Data" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <script runat="server">
        Private Function CreateDataSource() As ICollection
            Dim dt As New DataTable()
            Dim dr As DataRow

            dt.Columns.Add(New DataColumn("StringValue", _
                GetType(String)))
            dt.Columns.Add(New DataColumn("PriceValue", _
                GetType(String)))
            dt.Columns.Add(New DataColumn("DescriptionValue", _
                GetType(String)))

            Dim i As Integer
            For i = 1 To 10
                dr = dt.NewRow()
                dr(0) = "Item " + i.ToString()
                dr(1) = String.Format("{0:C}", (1.23 * (i + 1)))
                dr(2) = "Description for Item " + i.ToString()
                dt.Rows.Add(dr)
            Next

            Dim dv As New DataView(dt)
            Return dv
        End Function

        Private Sub Page_Load(ByVal sender As Object, _
            ByVal e As EventArgs)

            If Not IsPostBack Then
                DataList1.DataSource = CreateDataSource()
                DataList1.DataBind()
            End If
        End Sub
    </script>

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>
        ExtractTemplateRows Example
    </title>
</head>
<body>
    <form id="form1" runat="server">

    <h3>DataList ExtractTemplateRows Example</h3>

    <asp:DataList id="DataList1" runat="server"
        BorderColor="black"
        CellPadding="3"
        Font-Names="Arial, Helvetica"
        Font-Size="9pt"
        ExtractTemplateRows="true"
        GridLines="Both">

        <HeaderStyle BackColor="#aaaadd" />
        <AlternatingItemStyle BackColor="#efefef" />

        <HeaderTemplate>
        <asp:Table id="Table1" runat="server">
            <asp:TableRow>
                <asp:TableHeaderCell
                    ColumnSpan="2">
                    Items List
                </asp:TableHeaderCell>
            </asp:TableRow>
        </asp:Table>
        </HeaderTemplate>

        <ItemTemplate>
            <asp:Table id="Table2" runat="server">
                <asp:TableRow>
                    <asp:TableCell 
                        Text='<%# Eval("StringValue") %>'>
                    </asp:TableCell>
                    <asp:TableCell 
                        HorizontalAlign="Right"
                        Text='<%# Eval("PriceValue") %>'>
                    </asp:TableCell>
                </asp:TableRow>
                <asp:TableRow>
                    <asp:TableCell
                        ColumnSpan="2" 
                        Text='<%# Eval("DescriptionValue") %>'>
                    </asp:TableCell>
                </asp:TableRow>
            </asp:Table>
        </ItemTemplate> 
    </asp:DataList>
 
   </form>
</body>
</html>

Opmerkingen

De inhoud van het DataList besturingselement wordt opgegeven met behulp van sjablonen. Normaal gesproken geeft u besturingselementen weer die u wilt weergeven in de sjablonen. U kunt ook een Table besturingselement in een sjabloon plaatsen en de rijen van de tabel weergeven.

Gebruik de ExtractTemplateRows eigenschap om op te geven of de rijen van een Table besturingselement die in elke sjabloon van een DataList besturingselement zijn gedefinieerd, worden geëxtraheerd en weergegeven. Alle rijen die zijn geëxtraheerd uit de sjablonen van het DataList besturingselement, worden weergegeven in één tabel. Hiermee kunt u één tabel maken op basis van andere kleinere tabellen en de functies van het DataList besturingselement behouden.

Note

Wanneer deze eigenschap is ingesteld op true, moet u een goed gevormd besturingselement Table opgeven voor elke sjabloon die u wilt opnemen in het DataList besturingselement. Alleen de rijen van de tabellen worden weergegeven. Alle andere inhoud in de sjabloon wordt genegeerd. U moet een Table besturingselement gebruiken om deze functie goed te laten werken. Het System.Web.UI.HtmlControls.HtmlTable besturingselement is niet compatibel met deze eigenschap.

Wanneer u een cel voor een Table besturingselement in een sjabloon maakt, kunt u de ColumnSpan eigenschap van het TableCell object gebruiken om het aantal kolommen te bepalen dat de cel omvat. U kunt de RowSpan eigenschap ook gebruiken om het aantal rijen te bepalen dat de cel overspant.

Note

De RepeatColumnseigenschappen , RepeatDirectionen RepeatLayout eigenschappen hebben geen invloed op het uiterlijk van het DataList besturingselement wanneer deze eigenschap is ingesteld op true.

Van toepassing op

Zie ook