Sdílet prostřednictvím


DataList.ExtractTemplateRows Vlastnost

Definice

Získá nebo nastaví hodnotu, která označ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 použít ExtractTemplateRows vlastnost k extrakci a zobrazení řádků ovládacích prvků definovaných Table v šablonách DataList ovládacího prvku.

Poznámka

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

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

Obsah DataList ovládacího prvku je určen pomocí šablon. Obvykle se zobrazí seznam ovládacích prvků, které chcete zobrazit v šablonách. Ovládací prvek můžete také umístit Table do šablony a zobrazit řádky tabulky.

ExtractTemplateRows Vlastnost slouží k určení, 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 přitom zachovat funkce DataList ovládacího prvku.

Poznámka

Pokud je tato vlastnost nastavená na truehodnotu , musíte pro každou šablonu, kterou chcete do ovládacího prvku zahrnout, zadat ovládací prvek ve DataList správném formátuTable. Zobrazí se pouze řádky tabulek. Veškerý ostatní obsah v šabloně bude ignorován. 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 použít ColumnSpan vlastnost objektu TableCell k řízení počtu sloupců, které buňka přesahuje. Vlastnost můžete použít RowSpan také k řízení počtu řádků, které buňka pokrývá.

Poznámka

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

Platí pro

Viz také