lunes, 6 de enero de 2014

SELECCIONAR VALORES DE TABLAS RELACIONADAS

Para recuperar datos de tablas relacionadas
  1. Establezca la propiedad Select del control LinqDataSource con el siguiente valor:
    new(Name, 
        Size, 
        UnitMeasure.Name as SizeMeasureName, 
        Weight, 
        UnitMeasure1.Name as WeightMeasureName, 
        ProductSubcategory.Name as SubCategoryName)
    
    Las propiedades SizeMeasureNameWeightMeasureName y SubCategoryName contienen valores de tablas con relaciones de clave externa con la tabla Products.
  2. Para devolver sólo los productos que tienen una unidad de medida de tamaño o peso, establezca la propiedad Where con el siguiente valor:
    WeightUnitMeasureCode != null || SizeUnitMeasureCode != null
    
    Al filtrar estos valores se muestra cómo el control LinqDataSource administra las relaciones de clave externa. El operador || realiza una operación OR lógica. Por tanto, sólo se devuelven los registros con un valor asignado al menos en una de las claves externas.
    En el ejemplo siguiente, se muestra el marcado declarativo del control LinqDataSource.
    <asp:LinqDataSource 
      ContextTypeName="AdventureWorksDataContext" 
      TableName="Products" 
      Where="WeightUnitMeasureCode != null || 
             SizeUnitMeasureCode != null"
      Select="new(Name,
                  Size, 
                  UnitMeasure.Name as SizeMeasureName, 
                  Weight, 
                  UnitMeasure1.Name as WeightMeasureName, 
                  ProductSubCategory.Name as SubCategoryName)" 
      ID="LinqDataSource1" 
      runat="server">
    </asp:LinqDataSource>
    
  3. En el control GridView, agregue un control BoundField para cada columna que desee mostrar. Estas columnas son NameSizeSizeMeasureNameWeight,WeightMeasureName y SubCategoryName.
    En el ejemplo siguiente se muestra el marcado declarativo del control GridView.
    <asp:GridView 
      AllowPaging="true" 
      AllowSorting="true" 
      AutoGenerateColumns="false" 
      DataSourceID="LinqDataSource1" 
      ID="GridView1" 
      runat="server">
      <Columns>
        <asp:BoundField 
              DataField="Name" 
              HeaderText="Name" 
              SortExpression="Name" />
        <asp:BoundField 
              DataField="Size" 
              HeaderText="Size" 
              SortExpression="Size" />
        <asp:BoundField 
              DataField="SizeMeasureName" 
              HeaderText="Size Unit of Measurement" 
              SortExpression="SizeMeasureName" />
        <asp:BoundField 
              DataField="Weight" 
              HeaderText="Weight" 
              SortExpression="Weight" />
        <asp:BoundField 
              DataField="WeightMeasureName" 
              HeaderText="Weight Unit of Measurement" 
              SortExpression="WeightMeasureName" />
        <asp:BoundField 
              DataField="SubCategoryName" 
              HeaderText="Subcategory Name" 
              SortExpression="SubCategoryName" />
      </Columns>
    </asp:GridView>
  4. El control GridView muestra los valores de las tablas Product, ProductSubCategory y UnitMeasure.
  5.  Puede ordenar y paginar a través de los registros.

No hay comentarios:

Publicar un comentario