DataList.ExtractTemplateRows Propriété
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
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
Valeur de propriété
true
si les lignes d'un contrôle Table, définies dans chaque modèle d'un contrôle DataList, sont extraites et affichées ; sinon, false
. La valeur par défaut est false
.
Exemples
L’exemple de code suivant montre comment utiliser la ExtractTemplateRows propriété pour extraire et afficher les lignes de Table contrôles définis dans les modèles du DataList contrôle.
Notes
L’exemple de code suivant utilise le modèle de code à fichier unique et peut ne pas fonctionner correctement s’il est copié directement dans un fichier code-behind. Cet exemple de code doit être copié dans un fichier texte vide qui a une extension .aspx. Pour plus d’informations sur le modèle de code Web Forms, consultez ASP.NET modèle de code de page Web Forms.
<%@ 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>
Remarques
Le contenu du contrôle est spécifié à l’aide DataList de modèles. Normalement, vous répertoriez les contrôles que vous souhaitez afficher dans les modèles. Vous pouvez également placer un Table contrôle dans un modèle et afficher les lignes de la table.
Utilisez la ExtractTemplateRows propriété pour spécifier si les lignes d’un Table contrôle défini dans chaque modèle d’un DataList contrôle sont extraites et affichées. Toutes les lignes extraites des modèles du DataList contrôle sont affichées dans une table unique. Cela vous permet de créer une table unique à partir d’autres tables plus petites tout en conservant les fonctionnalités du DataList contrôle.
Notes
Lorsque cette propriété a la true
valeur , vous devez fournir un contrôle bien formé Table pour chaque modèle que vous souhaitez inclure dans le DataList contrôle. Seules les lignes des tables seront affichées. Tout le contenu du modèle sera ignoré. Vous devez utiliser un Table contrôle pour que cette fonctionnalité fonctionne correctement. Le System.Web.UI.HtmlControls.HtmlTable contrôle n’est pas compatible avec cette propriété.
Lorsque vous créez une cellule pour un Table contrôle dans un modèle, vous pouvez utiliser la ColumnSpan propriété de l’objet TableCell pour contrôler le nombre de colonnes que la cellule couvre. Vous pouvez également utiliser la RowSpan propriété pour contrôler le nombre de lignes étendues par la cellule.
Notes
Les RepeatColumnspropriétés , RepeatDirectionet RepeatLayout n’affectent pas l’apparence du DataList contrôle lorsque cette propriété est définie sur true
.