DataList.ExtractTemplateRows Vlastnost

Definice

Získá nebo nastaví hodnotu, která určuje, zda řádky Table ovládacího prvku definované v každé šabloně DataList ovládacího prvku jsou extrahovány a zobrazeny.

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

Hodnota vlastnosti

true pokud jsou řádky Table ovládacího prvku definované v každé šabloně DataList ovládacího prvku extrahovány a zobrazeny; v opačném případě false. Výchozí hodnota je false.

Příklady

Následující příklad kódu ukazuje, jak pomocí ExtractTemplateRows vlastnosti extrahovat a zobrazit řádky ovládacích Table prvků definovaných DataList v šablonách ovládacího prvku.

Note

Následující ukázka kódu používá model kódu s jedním souborem a při kopírování přímo do souboru s kódem nemusí správně fungovat. Tento vzorový kód musí být zkopírován do prázdného textového souboru, který má příponu .aspx. Další informace o modelu kódu webového formuláře najdete v tématu ASP.NET model kódu stránky webového formuláře.

<%@ 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>

Poznámky

DataList Obsah ovládacího prvku je určen pomocí šablon. Za normálních okolností vypíšete ovládací prvky, které chcete zobrazit v šablonách. Ovládací prvek můžete také umístit Table do šablony a zobrazit řádky tabulky.

ExtractTemplateRows Pomocí vlastnosti určete, zda jsou řádky Table ovládacího prvku definované v každé šabloně DataList ovládacího prvku extrahovány a zobrazeny. Všechny řádky extrahované ze šablon DataList ovládacího prvku se zobrazí v jedné tabulce. To vám umožní vytvořit jednu tabulku z jiných menších tabulek a zachovat funkce DataList ovládacího prvku.

Note

Pokud je tato vlastnost nastavena na true, musíte poskytnout dobře formátovaný Table ovládací prvek pro každou šablonu, kterou chcete zahrnout do DataList ovládacího prvku. Zobrazí se jenom řádky tabulek. Veškerý ostatní obsah v šabloně se bude ignorovat. Aby tato funkce fungovala správně, musíte použít Table ovládací prvek. Ovládací System.Web.UI.HtmlControls.HtmlTable prvek není kompatibilní s touto vlastností.

Když vytvoříte buňku Table pro ovládací prvek v šabloně, můžete pomocí ColumnSpan vlastnosti TableCell objektu určit počet sloupců, které buňka zahrnuje. Vlastnost můžete také použít RowSpan k řízení počtu řádků, které buňka zahrnuje.

Note

Vlastnost RepeatColumns, RepeatDirectiona RepeatLayout vlastnosti nemají vliv na vzhled DataList ovládacího prvku, pokud je tato vlastnost nastavena na true.

Platí pro

Viz také