Cómo: Enlazar a los datos de un control con plantilla

Actualización: noviembre 2007

Los controles de servidor Web FormView, DataList y Repeater utilizan plantillas para mostrar datos o recuperar los datos introducidos por el usuario a fin de insertar, actualizar o eliminar datos. Además, puede utilizar plantillas con los controles GridView y DetailsView para personalizar la presentación de los datos.

Para enlazar un control con plantilla a un control de origen de datos como el control ObjectDataSource o SqlDataSource, debe establecer la propiedad DataSourceID del control con plantilla en el id. del control de origen de datos. A continuación puede utilizar las funciones Eval y Bind dentro de la plantilla para enlazar a los datos del origen de datos. Para obtener más información, vea Sintaxis de expresiones de enlace de datos.

Para enlazar un control a los datos mediante plantillas

  1. Agregue un control de origen de datos como el control SqlDataSource a la página, como en el ejemplo siguiente:

    <asp:SqlDataSource ID="SqlDataSource1" 
      SelectCommand="SELECT * FROM [Products]"
      ConnectionString="<%$ ConnectionStrings:NorthwindConnection %>"
      RunAt="server">
    </asp:SqlDataSource>
    
    <asp:SqlDataSource ID="SqlDataSource1" 
      SelectCommand="SELECT * FROM [Products]"
      ConnectionString="<%$ ConnectionStrings:NorthwindConnection %>"
      RunAt="server">
    </asp:SqlDataSource>
    
  2. Agregue un control que admita plantillas, como el control FormView de ASP.NET.

  3. Establezca la propiedad DataSourceID del control con plantilla al id. del control de origen de datos del paso 1, como en este ejemplo:

    <asp:FormView ID="FormView1"
      DataSourceID="SqlDataSource1"
      DataKeyNames="ProductID"     
      Runat="server">
    </asp:FormView>
    
  4. Agregue plantillas al control con plantilla y rellénelas con controles y formato.

  5. Para mostrar datos, utilice la función Eval como valor de propiedad y haga referencia al campo enlazado a datos. En las plantillas empleadas para insertar o editar datos, utilice la función Bind para hacer referencia al campo enlazado a datos, como se muestra en el ejemplo siguiente:

    <asp:FormView ID="FormView1"
      DataSourceID="SqlDataSource1"
      DataKeyNames="ProductID"     
      RunAt="server">
    
      <ItemTemplate>
        <table>
          <tr><td align="right"><b>Product ID:</b></td>       <td><%# Eval("ProductID") %></td></tr>
          <tr><td align="right"><b>Product Name:</b></td>     <td><%# Eval("ProductName") %></td></tr>
          <tr><td align="right"><b>Category ID:</b></td>      <td><%# Eval("CategoryID") %></td></tr>
          <tr><td align="right"><b>Quantity Per Unit:</b></td><td><%# Eval("QuantityPerUnit") %></td></tr>
          <tr><td align="right"><b>Unit Price:</b></td>       <td><%# Eval("UnitPrice") %></td></tr>
        </table>                 
      </ItemTemplate>                   
    </asp:FormView>
    
    <asp:FormView ID="FormView1"
      DataSourceID="SqlDataSource1"
      DataKeyNames="ProductID"     
      RunAt="server">
    
      <ItemTemplate>
        <table>
          <tr><td align="right"><b>Product ID:</b></td>       <td><%# Eval("ProductID") %></td></tr>
          <tr><td align="right"><b>Product Name:</b></td>     <td><%# Eval("ProductName") %></td></tr>
          <tr><td align="right"><b>Category ID:</b></td>      <td><%# Eval("CategoryID") %></td></tr>
          <tr><td align="right"><b>Quantity Per Unit:</b></td><td><%# Eval("QuantityPerUnit") %></td></tr>
          <tr><td align="right"><b>Unit Price:</b></td>       <td><%# Eval("UnitPrice") %></td></tr>
        </table>                 
      </ItemTemplate>                 
    </asp:FormView>
    

    Cada control de servidor Web admite plantillas diferentes. Por ejemplo, el control Repeater admite las propiedades ItemTemplate y AlternatingItemTemplate para mostrar datos utilizando controles, estilos y formato alternos. Para obtener más información sobre los controles de servidor Web y las plantillas admitidas, vea Información general sobre los controles de servidor Web ASP.NET enlazados a datos.

Vea también

Conceptos

Información general sobre los controles de origen de datos

Otros recursos

Cómo: Conectar con una base de datos ODBC mediante el control SqlDataSource