DataList.ExtractTemplateRows Propiedad
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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
Valor de propiedad
Es true
si se extraen y se muestran las filas de un control Table, definido en cada plantilla de un control DataList; en caso contrario, es false
. El valor predeterminado es false
.
Ejemplos
En el ejemplo de código siguiente se muestra cómo usar la ExtractTemplateRows propiedad para extraer y mostrar las filas de Table controles definidos en las plantillas del DataList control.
Nota
En el ejemplo de código siguiente se usa el modelo de código de un solo archivo y es posible que no funcione correctamente si se copia directamente en un archivo de código subyacente. Este ejemplo de código debe copiarse en un archivo de texto vacío que tenga una extensión .aspx. Para obtener más información sobre el modelo de código de formularios Web Forms, vea ASP.NET modelo de código de página de formularios 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>
Comentarios
El contenido del DataList control se especifica mediante plantillas. Normalmente, se muestran los controles que desea mostrar en las plantillas. También puede colocar un Table control en una plantilla y mostrar las filas de la tabla.
Utilice la ExtractTemplateRows propiedad para especificar si se extraen y muestran las filas de un Table control definido en cada plantilla de un DataList control. Todas las filas extraídas de las plantillas del DataList control se muestran en una sola tabla. Esto le permite crear una sola tabla a partir de otras tablas más pequeñas y mantener las características del DataList control.
Nota
Cuando esta propiedad se establece true
en , debe proporcionar un control bien formado Table para cada plantilla que desee incluir en el DataList control . Solo se mostrarán las filas de las tablas. Se omitirá el resto del contenido de la plantilla. Debe usar un Table control para que esta característica funcione correctamente. El System.Web.UI.HtmlControls.HtmlTable control no es compatible con esta propiedad.
Al crear una celda para un Table control en una plantilla, puede usar la ColumnSpan propiedad del TableCell objeto para controlar el número de columnas que abarca la celda. También puede usar la RowSpan propiedad para controlar el número de filas que abarca la celda.
Nota
Las RepeatColumnspropiedades , RepeatDirectiony RepeatLayout no afectan a la apariencia del DataList control cuando esta propiedad se establece true
en .