Para recuperar y mostrar datos agrupados y registros individuales
- Establezca las propiedades ContextTypeName y TableName del control LinqDataSource.
Establezca la propiedad GroupBy en la columna o columnas que desea usar para agrupar los datos. - Establezca la propiedad Select para incluir la palabra clave It y cualquier función de agregado que necesite. Se debe cambiar el nombre del objeto representado por la palabra clave It con la palabra clave As.El ejemplo siguiente muestra un control LinqDataSource configurado para agrupar por dos columnas. La propiedad Key hace referencia a un objeto que tiene dos propiedades, ProductCategory y Color. Se cambia el nombre del objeto representado por It a Products. El objeto Products con el nombre cambiado contiene una colección de los registros individuales de una agrupación. Cada instancia contiene todas las columnas de la tabla Products.
<asp:LinqDataSource ContextTypeName="ExampleDataContext" TableName="Products" GroupBy="new(ProductCategory,Color)" Select="new(Key, It As Products, Max(ListPrice) As MaxListPrice, Min(ListPrice) As MinListPrice)" ID="LinqDataSource1" runat="server"> </asp:LinqDataSource>
El ejemplo siguiente muestra dos controles ListView que presentan los datos agrupados y los nombres individuales de los productos que pertenecen a dicho grupo. La propiedad DataSource del control enlazado a datos anidado se establece en Products, que es el alias del objeto it.<asp:ListView DataSourceID="LinqDataSource1" ID="ListView1" runat="server"> <LayoutTemplate> <table style="background-color:Teal;color:White" runat="server"> <thead> <tr> <th>Product Category</th> <th>Color</th> <th>Highest Price</th> <th>Lowest Price</th> </tr> </thead> <tr runat="server" id="itemPlaceholder"> </tr> </table> </LayoutTemplate> <ItemTemplate> <tr> <td><%# Eval("Key.ProductCategory") %></td> <td><%# Eval("Key.Color") %></td> <td><%# Eval("MaxListPrice") %></td> <td><%# Eval("MinListPrice") %></td> </tr> <tr> <td colspan="4" style="width:100%;background-color:White;color:Black" > <asp:ListView DataSource='<%# Eval("Products") %>' runat="server" ID="ListView2"> <LayoutTemplate> <div runat="server" id="itemPlaceholder"> </div> </LayoutTemplate> <ItemTemplate> <%# Eval("ProductName") %><br /> </ItemTemplate> </asp:ListView> </td> </tr> </ItemTemplate> </asp:ListView>
No hay comentarios:
Publicar un comentario