<%@ Page Language="C#" AutoEventWireup="true" CodeFile="DetailView.aspx.cs"
 Inherits="DetailView" MasterPageFile="~/SingleMaster.master" %>
  
<asp:content contentplaceholderid="PageContent" runat="Server">

    <!--
        No es objeto de este ejercicio explicar "Master Pages" este concepto esta 
        explicado en el ejercicio correspondiente: "DCE2005 MasterPage Navigation"
    -->

    <div>
    <table width="100%">
        <tr>
            <td align="center" height="100px" class="Title">
                Control de visualizacion de registros individuales (DetailsView).
            </td>
        </tr>
        <tr>
            <td class="Text">
               Este control fue generado en la solapa de diseño (ver en la barra inferior
                a la izquierda, de esta ventana) Tanto el estilo, la fuente de datos
                (DataSourceId), su comportamiento (paginacion, ordenamiento, modificacion
                de registros, etc) fueron establecidos mediante el "smart tag" de la grilla,
                de acuerdo a los pasos del ejercicio "PASO A PASO".
            </td>
        </tr>
            <tr height="50px"><td></td></tr>
        <tr>
            <td align="center" >
           <!--
               Si bien la generacion del control es automatica, el formato de la página, el estilo,
               las tablas de html y las ubicaciones del contenido, se realizaron manualmente.
            -->
            <asp:DetailsView ID="DetailsView1" runat="server" DataSourceID="sqlDataSource" Height="50px"
                Width="125px" CellPadding="4" ForeColor="#333333" GridLines="None" AllowPaging="True" AutoGenerateRows="false">
                <FooterStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
                <CommandRowStyle BackColor="#D1DDF1" Font-Bold="True" />
                <EditRowStyle BackColor="#2461BF" />
                <RowStyle BackColor="#EFF3FB" />
                <PagerStyle BackColor="#2461BF" ForeColor="White" HorizontalAlign="Center" />
                <FieldHeaderStyle BackColor="#DEE8F5" Font-Bold="True" HorizontalAlign="Left" />
                <HeaderStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
                <AlternatingRowStyle BackColor="White" />
                <Fields>
                    <asp:CommandField ShowDeleteButton="True" ShowEditButton="True" ShowInsertButton="True" />
                     <asp:BoundField DataField="ProductId" HeaderText="Codigo" SortExpression="ProductId" />
                    <asp:BoundField DataField="Name" HeaderText="Nombre" SortExpression="Name" />
                    <asp:BoundField DataField="ProductNumber" HeaderText="Producto" SortExpression="ProductNumber" />
                    <asp:BoundField DataField="DaysToManufacture" HeaderText="Demora en Dias" SortExpression="DaysToManufacture" />
                    <asp:BoundField DataField="ListPrice" HeaderText="Precio" SortExpression="ListPrice" />
                    <asp:BoundField DataField="DiscontinuedDate" DataFormatString="{0:dd/MM/yyyy}" HeaderText="Fecha Finalizacion"
                        SortExpression="DiscontinuedDate" />
                </Fields>
            </asp:DetailsView>
        
        </td>
     </tr>
    </table>
         <!--
            Este control fue generado automaticamente al establecer la fuente de datos 
            con la que trabaja el DetailsView. Como se indico que realizarian tareas de eliminacion
            de registros y modificacion ademas de la seleccion correspondiente em la grilla, 
            el control sqlDataSource incorpora las sentencias necesarias.
            
            El generador de la fuente de datos, para preservar datos en el motor, genera la sentencia update
            pidiendo como condicion que los nuevos datos sean "IGUALES" a los datos originales. Esta 
            condicion fue modificada en este ejemplo para poder modificar datos y ver los resultados.
        -->
        <asp:SqlDataSource ID="sqlDataSource" runat="server" ConnectionString="<%$ ConnectionStrings:ADVENTUREWORKSConnectionString %>"
            ConflictDetection="CompareAllValues" 
            SelectCommand="SELECT [ProductID], [Name], [ProductNumber], [Color], [DaysToManufacture], [ListPrice], [DiscontinuedDate] FROM [Production].[Product]"             
            DeleteCommand="DELETE FROM [Production].[Product] WHERE [ProductID] = @original_ProductID AND [Name] = @original_Name AND [ProductNumber] = @original_ProductNumber AND [Color] = @original_Color AND [DaysToManufacture] = @original_DaysToManufacture AND [ListPrice] = @original_ListPrice AND [DiscontinuedDate] = @original_DiscontinuedDate" 
            InsertCommand="INSERT INTO [Production].[Product] ([Name], [ProductNumber], [Color], [DaysToManufacture], [ListPrice], [DiscontinuedDate]) VALUES (@Name, @ProductNumber, @Color, @DaysToManufacture, @ListPrice, @DiscontinuedDate)" 
            OldValuesParameterFormatString="original_{0}" 
            UpdateCommand="UPDATE [Production].[Product] SET [Name] = @Name, [ProductNumber] = @ProductNumber, [Color] = @Color, [DaysToManufacture] = @DaysToManufacture, [ListPrice] = @ListPrice, [DiscontinuedDate] = @DiscontinuedDate WHERE [ProductID] = @original_ProductID AND [Name] = @original_Name AND [ProductNumber] = @original_ProductNumber AND [Color] = @original_Color AND [DaysToManufacture] = @original_DaysToManufacture AND [ListPrice] = @original_ListPrice AND [DiscontinuedDate] = @original_DiscontinuedDate">
            <DeleteParameters>
                <asp:Parameter Name="original_ProductID" Type="Int32" />
                <asp:Parameter Name="original_Name" Type="String" />
                <asp:Parameter Name="original_ProductNumber" Type="String" />
                <asp:Parameter Name="original_Color" Type="String" />
                <asp:Parameter Name="original_DaysToManufacture" Type="Int32" />
                <asp:Parameter Name="original_ListPrice" Type="Decimal" />
                <asp:Parameter Name="original_DiscontinuedDate" Type="DateTime" />
            </DeleteParameters>
            <UpdateParameters>
                <asp:Parameter Name="Name" Type="String" />
                <asp:Parameter Name="ProductNumber" Type="String" />
                <asp:Parameter Name="Color" Type="String" />
                <asp:Parameter Name="DaysToManufacture" Type="Int32" />
                <asp:Parameter Name="ListPrice" Type="Decimal" />
                <asp:Parameter Name="DiscontinuedDate" Type="DateTime" />
                <asp:Parameter Name="original_ProductID" Type="Int32" />
                <asp:Parameter Name="original_Name" Type="String" />
                <asp:Parameter Name="original_ProductNumber" Type="String" />
                <asp:Parameter Name="original_Color" Type="String" />
                <asp:Parameter Name="original_DaysToManufacture" Type="Int32" />
                <asp:Parameter Name="original_ListPrice" Type="Decimal" />
                <asp:Parameter Name="original_DiscontinuedDate" Type="DateTime" />
            </UpdateParameters>
            <InsertParameters>
                <asp:Parameter Name="Name" Type="String" />
                <asp:Parameter Name="ProductNumber" Type="String" />
                <asp:Parameter Name="Color" Type="String" />
                <asp:Parameter Name="DaysToManufacture" Type="Int32" />
                <asp:Parameter Name="ListPrice" Type="Decimal" />
                <asp:Parameter Name="DiscontinuedDate" Type="DateTime" />
            </InsertParameters>
        </asp:SqlDataSource>
    
    </div>
   </asp:content>