update in telerik: RadGrid

1 posts, 0 answers
  1. Alexis
    Alexis avatar
    1 posts
    Member since:
    Jun 2012

    Posted 20 Jun 2012 Link to this post

    such good afternoon, I was trying to update the record in the telerik: RadGrid
      I am using SqlDataSource1

    alone and unable to perform query, insert, and elimar,
    not allow me to perform the update of the record that I'm putting badly, or if there is a better way to perform these operations without using SqlDataSource1

    another query, as I can pass values ​​from the aspx form ie values ​​of a combobox or textbox and assign an example:
    assign them to the values ​​to insert or remove than the ones in the grid

      <InsertParameters>
                                        <asp:Parameter Name="usuario" />
                                        <asp:Parameter Name="f_actual" />
                                        <asp:Parameter Name="id_cliente" />
                                        <asp:Parameter Name="nomContactoCliente" />
                                        DefaultValue="agondola" <asp:Parameter Name="id_empleado" />
                                        <asp:Parameter Name="id_estado" />
                                        <asp:Parameter Name="f_tarea" />
                                        <asp:Parameter Name="descripcionTarea" />
                                        <asp:Parameter Name="cantidadHoraTarea" />
                                        DefaultValue="1" <asp:Parameter Name="id_proyecto" />
                                    </ InsertParameters>


    /////////////////////////////////////////////////////////////////////////////////////////////
    code aspx in c#


    <%@ Page Title="" Language="C#" MasterPageFile="~/ReporteHoras.Master" AutoEventWireup="true" CodeBehind="reporteHoras.aspx.cs"
    Inherits="Reporte_Horas.Mantenimiento.reporteHoras" %>

    <%@ Register TagPrefix="telerik" Namespace="Telerik.Web.UI" Assembly="Telerik.Web.UI" %>


    <asp:Content ID="Content1" ContentPlaceHolderID="HeadContent" runat="server">

        <style type="text/css">
            .GridViewStyle
            {}
            </style>

    </asp:Content>
    <asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
       
       

        <telerik:RadScriptManager ID="RadScriptManager1" Runat="server">
        </telerik:RadScriptManager>

         


         <telerik:RadCodeBlock ID="RadCodeBlock1" runat="server">
            <script type="text/javascript">
                <!--
                function RowDblClick(sender, eventArgs) {
                  sender.get_masterTableView().editItem(eventArgs.get_itemIndexHierarchical());
                }

                function gridCreated(sender, args) {
    //                if (sender.get_editIndexes && sender.get_editIndexes().length > 0) {
    //                    document.getElementById("OutPut").innerHTML = sender.get_editIndexes().join();
    //                }
    //                else {
    //                    document.getElementById("OutPut").innerHTML = "";
    //                }
                }
                -->
            </script>
        </telerik:RadCodeBlock>

     
       

       <fieldset class="containersintitulo">

                            <fieldset style="width: 865px">
                                     <legend class="titulocontainerinterno">Consulta de Horas</legend>
                                            
                                     <table style="width: 855px">
                                         <tr>
                                             <td>
                                                 <asp:Label ID="lblConsultor" runat="server" Text="Consultor"></asp:Label>
                                             </td>
                                             <td>
                                                 <telerik:RadComboBox ID="ddlConsultor" Runat="server" Enabled="False"
                                                     Width="258px">
                                                 </telerik:RadComboBox>
                                             </td>
                                             <td>
                                                 &nbsp;</td>
                                             <td>
                                                 <asp:Label ID="lblProyecto" runat="server" Text="Proyecto"></asp:Label>
                                             </td>
                                             <td>
                                                 <telerik:RadComboBox ID="dllProyecto" Runat="server" Height="23px"
                                                     Width="165px">
                                                 </telerik:RadComboBox>
                                             </td>
                                         </tr>
                                         <tr>
                                             <td>
                                                 <asp:Label ID="lblCliente" runat="server" Text="Cliente"></asp:Label>
                                             </td>
                                             <td>
                                                 <telerik:RadComboBox ID="ddlCLiente" Runat="server" AutoPostBack="True"
                                                     Width="258px" onselectedindexchanged="ddlCLiente_SelectedIndexChanged">
                                                 </telerik:RadComboBox>
                                             </td>
                                             <td>
                                                 &nbsp;</td>
                                             <td>
                                                 <asp:Label ID="lblFechaInicio" runat="server" Text="Fecha Inicio"></asp:Label>
                                             </td>
                                             <td>
                                                 <telerik:RadDatePicker ID="dpFechaInicio" Runat="server" AutoPostBack="True"
                                                     onselecteddatechanged="dpFechaInicio_SelectedDateChanged" Culture="es-PA"
                                                     Skin="Windows7">
                                                          <Calendar UseRowHeadersAsSelectors="False" UseColumnHeadersAsSelectors="False"
                                                              ViewSelectorText="x" Skin="Windows7"></Calendar>

                                                         <DateInput DisplayDateFormat="MM/dd/yyyy" DateFormat="MM/dd/yyyy" EnableSingleInputRendering="True" LabelWidth="64px"
                                                                 AutoPostBack="True"></DateInput>

                                                      <DatePopupButton ImageUrl="" HoverImageUrl=""></DatePopupButton>
                                                 </telerik:RadDatePicker>
                                             </td>
                                         </tr>
                                         <tr>
                                             <td>
                                                 <asp:Label ID="lblContactoCliente" runat="server" Text="Contacto del Cliente"></asp:Label>
                                             </td>
                                             <td>
                                                 <asp:TextBox ID="txtContactoCliente" runat="server" Width="255px"></asp:TextBox>
                                             </td>
                                             <td>
                                                 &nbsp;</td>
                                             <td>
                                                 <asp:Label ID="lblFechaFin" runat="server" Text="Fecha Fin"></asp:Label>
                                             </td>
                                             <td>
                                                 <telerik:RadDatePicker ID="dpFechaFin" Runat="server" Skin="Windows7"
                                                     Enabled="False">
                                                     <Calendar Skin="Windows7" UseColumnHeadersAsSelectors="False"
                                                         UseRowHeadersAsSelectors="False" ViewSelectorText="x">
                                                     </Calendar>
                                                     <DateInput DateFormat="MM/dd/yyyy" DisplayDateFormat="MM/dd/yyyy"
                                                         EnableSingleInputRendering="True" LabelWidth="64px">
                                                     </DateInput>
                                                     <DatePopupButton HoverImageUrl="" ImageUrl="" />
                                                 </telerik:RadDatePicker>
                                             </td>
                                         </tr>
                                         <tr>
                                             <td>
                                                 &nbsp;</td>
                                             <td>
                                                 &nbsp;</td>
                                             <td>
                                                 &nbsp;</td>
                                             <td>
                                                 &nbsp;</td>
                                             <td>
                                                 &nbsp;</td>
                                         </tr>
                                     </table>

                                     <%-- campo cantidad de horas--%>

                                    <hr style="color: #3366FF;" />                              
                                    

                               <asp:Label ID="lblMensajes" runat="server" ForeColor="Red"></asp:Label>

                                       
                                     <br />

                                       
                            <telerik:RadAjaxManager ID="RadAjaxManager1" runat="server">
                                 <AjaxSettings>
                                       <telerik:AjaxSetting AjaxControlID="RadGrid1">
                                            <UpdatedControls>
                                                  <telerik:AjaxUpdatedControl ControlID="RadGrid1" LoadingPanelID="RadAjaxLoadingPanel1" />
                                                  <telerik:AjaxUpdatedControl ControlID="RadWindowManager1" />
                                            </UpdatedControls>
                                       </telerik:AjaxSetting>

                                 </AjaxSettings>
                            </telerik:RadAjaxManager>


                            <telerik:RadAjaxLoadingPanel ID="RadAjaxLoadingPanelReporte" runat="server" />


                                     <%--Contiene los totales de horas registradas--%>      
                              
                               <telerik:RadGrid ID="RadGrid1" GridLines="None" runat="server" AllowAutomaticDeletes="True"
            AllowAutomaticInserts="True" AllowAutomaticUpdates="True" AllowPaging="True"
            AutoGenerateColumns="False" OnUpdateCommand="RadGrid1_UpdateCommand" OnItemUpdated ="RadGrid1_ItemUpdated"
            OnItemDeleted="RadGrid1_ItemDeleted" OnItemInserted="RadGrid1_ItemInserted"
                                         OnDataBound="RadGrid1_DataBound" Skin="Windows7" CellSpacing="0"
                                         onneeddatasource="RadGrid1_NeedDataSource" DataSourceID="SqlDataSource1" >
            <PagerStyle Mode="NextPrevAndNumeric" />
            <MasterTableView Width="100%" CommandItemDisplay="TopAndBottom"
                                       DataKeyNames="id_reporte, f_tarea, id_estado, descripcionTarea, cantidadHoraTarea"
                                       HorizontalAlign="NotSet" AutoGenerateColumns="False"
                                       DataSourceID="SqlDataSource1">
    <CommandItemSettings ExportToPdfText="Export to PDF"></CommandItemSettings>

    <RowIndicatorColumn Visible="True" FilterControlAltText="Filter RowIndicator column"></RowIndicatorColumn>

    <ExpandCollapseColumn Visible="True" FilterControlAltText="Filter ExpandColumn column"></ExpandCollapseColumn>
                <Columns>
                    <telerik:GridEditCommandColumn ButtonType="ImageButton" UniqueName="EditCommandColumn">
                        <ItemStyle CssClass="MyImageButton" />
                    </telerik:GridEditCommandColumn>

                    <telerik:GridBoundColumn DataField="id_reporte" HeaderText="ID Reporte" SortExpression="id_reporte"
                        UniqueName="id_reporte" ColumnEditorID="GridTextBoxColumnEditor1">
                    </telerik:GridBoundColumn>

                      <telerik:GridDateTimeColumn DataField="f_tarea"
                        FilterControlAltText="Filter f_tarea column" HeaderText="Fecha"
                        SortExpression="f_tarea" UniqueName="f_tarea">
                    </telerik:GridDateTimeColumn>

                      <telerik:GridDropDownColumn DataField="id_estado" DataSourceID="SqlDataSource2"
                        HeaderText="Estado de Tarea" ListTextField="descripcion" ListValueField="id_estado"
                        UniqueName="id_estado" ColumnEditorID="GridDropDownColumnEditor1">
                    </telerik:GridDropDownColumn>

                      <telerik:GridBoundColumn DataField="descripcionTarea"
                        HeaderText="Descripcion de Tareas" SortExpression="descripcionTarea"
                        UniqueName="descripcionTarea" ColumnEditorID="GridTextBoxColumnEditor2"
                        FilterControlAltText="Filter descripcionTarea column">
                    </telerik:GridBoundColumn>

                    <telerik:GridNumericColumn DataField="cantidadHoraTarea" HeaderText="Cantidad de Horas" SortExpression="cantidadHoraTarea"
                        UniqueName="cantidadHoraTarea" ColumnEditorID="GridNumericColumnEditor1" >
                    </telerik:GridNumericColumn>


                    <telerik:GridButtonColumn ConfirmText="Delete this product?" ConfirmDialogType="RadWindow"
                        ConfirmTitle="Delete" ButtonType="ImageButton" CommandName="Delete" Text="Delete"
                        UniqueName="DeleteColumn">
                        <ItemStyle HorizontalAlign="Center" CssClass="MyImageButton" />
                    </telerik:GridButtonColumn>

                </Columns>

                <EditFormSettings ColumnNumber="2" CaptionDataField="id_reporte" CaptionFormatString="Edit properties of Product {0}"
                    InsertCaption="New Product">
                    <FormTableItemStyle Wrap="False"></FormTableItemStyle>

    <FormTableStyle CellPadding="2" CellSpacing="0" BackColor="White" Height="110px"></FormTableStyle>

    <FormMainTableStyle CellPadding="3" CellSpacing="0" BackColor="White" Width="100%"></FormMainTableStyle>

                    <FormCaptionStyle CssClass="EditFormHeader"></FormCaptionStyle>
                    <FormMainTableStyle GridLines="None" CellSpacing="0" CellPadding="3" BackColor="White"
                        Width="100%" />
                    <FormTableStyle CellSpacing="0" CellPadding="2" Height="110px" BackColor="White" />
                    <FormTableAlternatingItemStyle Wrap="False"></FormTableAlternatingItemStyle>
                    <EditColumn ButtonType="ImageButton" InsertText="Insert Order" UpdateText="Update record"
                        UniqueName="EditCommandColumn1" CancelText="Cancel edit">
                    </EditColumn>
                    <FormTableButtonRowStyle HorizontalAlign="Right" CssClass="EditFormButtonRow"></FormTableButtonRowStyle>
                </EditFormSettings>
            </MasterTableView>

            <ClientSettings>
    <Selecting CellSelectionMode="None"></Selecting>

                <ClientEvents OnRowDblClick="RowDblClick" OnGridCreated="gridCreated" />

    <ClientEvents OnGridCreated="gridCreated" OnRowDblClick="RowDblClick"></ClientEvents>
            </ClientSettings>

    <FilterMenu EnableImageSprites="False"></FilterMenu>
        </telerik:RadGrid>


      <%--  fin del grid--%>


                                   

                                       <br />

                                     <%--Contiene los totales de horas registradas--%>
                                       <telerik:GridDateTimeColumnEditor ID="GridDateTimeColumnEditor1"  runat="server"  />

                                     <%--Contiene los totales de horas registradas--%>
                                     <telerik:GridDropDownListColumnEditor ID="GridDropDownColumnEditor1" runat="server"  DropDownStyle-Width="110px" />

                                     <%--Contiene los totales de horas registradas--%>
                                      <telerik:GridNumericColumnEditor ID="GridNumericColumnEditor1" runat="server"  NumericTextBox-MaxLength="2" NumericTextBox-MaxValue ="24"
                                          NumericTextBox-MinValue ="1" NumericTextBox-Width="40px" />

                                     <%--Contiene la descripcion de la tarea--%>
                                       <telerik:GridTextBoxColumnEditor ID="GridTextBoxColumnEditor1" runat="server"  TextBoxMaxLength="100" TextBoxStyle-Width="250px" />
                                     
                                    

                                       <telerik:RadWindowManager ID="RadWindowManager1" runat="server" Skin="Windows7">
                                       </telerik:RadWindowManager>


                                 <br />


                               <asp:SqlDataSource ID="SqlDataSource1" runat="server"
                                         ConnectionString="<%$ ConnectionStrings:DBReporteHora %>" DeleteCommand="    DELETE FROM [ReportesHoras]
        WHERE  [ReportesHoras].id_reporte = @ID_REPORTE" InsertCommand="INSERT INTO [DBReporteHoras].[dbo].[ReportesHoras]
               ([usuario]
               ,[f_actual]
               ,[id_cliente]
               ,[nomContactoCliente]
               ,[id_empleado]
               ,[id_estado]
               ,[f_tarea]
               ,[descripcionTarea]
               ,[cantidadHoraTarea]
               ,[id_proyecto])

         VALUES    
                (
                @usuario,
                @f_actual,
                @id_cliente,
                @nomContactoCliente,
                @id_empleado,
                @id_estado,
                CONVERT(NVARCHAR(10),@f_tarea,101),
                @descripcionTarea,
                @cantidadHoraTarea,
                @id_proyecto)    "


                                         SelectCommand="SELECT r.id_reporte, r.nomContactoCliente, CONVERT (NVARCHAR(10), r.f_tarea, 103) AS f_tarea, r.descripcionTarea,
                                         r.id_estado, e.descripcion AS descripcion_estado, r.cantidadHoraTarea, r.id_empleado, r.id_cliente, r.id_proyecto FROM
                                         ReportesHoras AS r
                                         INNER JOIN Estados AS e ON r.id_estado = e.id_estado
                                         WHERE (r.id_empleado = @id_empleado)
                                          AND (r.id_proyecto = @id_cliente) AND (r.id_proyecto = @id_proyecto)
                                          AND (r.f_tarea BETWEEN @ID_F_INICIO AND @ID_F_FIN)
                                          ORDER BY r.id_reporte"
                                         
                                         
           UpdateCommand="    UPDATE  [ReportesHoras]
            SET
                
                [ReportesHoras].id_estado  = @id_estado,    
                [ReportesHoras].descripcionTarea  = @descripcionTarea,            
                [ReportesHoras].cantidadHoraTarea = @cantidadHoraTarea
            WHERE
                [ReportesHoras].ID_REPORTE = @id_reporte    "
                                         ProviderName="<%$ ConnectionStrings:DBReporteHora.ProviderName %>">
                                 
                                   <DeleteParameters>
                                       <asp:Parameter Name="id_reporte" />
                                   </DeleteParameters>

                                   <InsertParameters>
                                       <asp:Parameter  DefaultValue="agondola" Name="usuario" />
                                       <asp:Parameter  DefaultValue="datetime" Name="f_actual" />
                                       <asp:Parameter  DefaultValue="1" Name="id_cliente" />
                                       <asp:Parameter DefaultValue="1" Name="nomContactoCliente" />
                                       <asp:Parameter DefaultValue="agondola" Name="id_empleado" />
                                       <asp:Parameter Name="id_estado" />
                                       <asp:Parameter Name="f_tarea" />
                                       <asp:Parameter Name="descripcionTarea" />
                                       <asp:Parameter Name="cantidadHoraTarea" />
                                       <asp:Parameter DefaultValue="1"  Name="id_proyecto" />
                                   </InsertParameters>

                                   <SelectParameters>
                                       <asp:Parameter  DefaultValue="agondola" Name="id_empleado" />
                                       <asp:Parameter  DefaultValue="1" Name="id_cliente" />
                                       <asp:Parameter  DefaultValue="1" Name="id_proyecto" />
                                       <asp:Parameter  DefaultValue="2012-06-11" Name="ID_F_INICIO" />
                                       <asp:Parameter  DefaultValue="2012-06-11" Name="ID_F_FIN" />
                                   </SelectParameters>

                                   <UpdateParameters>
                                       <asp:Parameter Name="id_reporte" />
                                       <asp:Parameter Name="id_estado" />
                                       <asp:Parameter Name="descripcionTarea" />
                                       <asp:Parameter Name="cantidadHoraTarea" />
                                   </UpdateParameters>

                               
                                   </asp:SqlDataSource>



       <asp:SqlDataSource ID="SqlDataSource2" runat="server"
         ConnectionString="<%$ ConnectionStrings:DBReporteHora %>"
              SelectCommand="sp_pp_Select_Estados_Tareas" SelectCommandType="StoredProcedure"
                                         ProviderName="<%$ ConnectionStrings:DBReporteHora.ProviderName %>">
        </asp:SqlDataSource>

                                     <br />


                                  <hr style="color: #3366FF; width: 845px;" />



                                  <%--Contiene los totales de horas registradas--%>
                                  <table>
                                   <tr>
                                       <td>
                                           &nbsp;
                                           <asp:Label ID="lblHorasTrabajadas" runat="server"
                                               Text="Total de horas trabajadas:"></asp:Label>
                                       </td>
                                       <td>
                                           &nbsp;
                                           <asp:TextBox ID="txtHorastrabajadas" runat="server" Enabled="False"
                                               Width="40px"></asp:TextBox>
                                       </td>
                                   </tr>
                               </table>
                          
                                            
                           </fieldset>

        </fieldset>

     
     
    </asp:Content>

    ////////////////////////////////////////////////////////////////////////////////////////////


    ///////////////////////////////////////////////////////
    code aspx.cs

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using Telerik.Web.UI;
    using Telerik.Web.UI.Calendar;

    using System.Data.Common;
    using System.IO;
    using System.Data;
    using System.Data.SqlClient;
    using Reporte_Horas.Clases;

    using System.Configuration;
    using System.Collections;
    using System.Web.Security;
    using System.Web.UI.WebControls.WebParts;
    using System.Web.UI.HtmlControls;
    using System.Drawing;




    namespace Reporte_Horas.Mantenimiento
    {
        public partial class reporteHoras : System.Web.UI.Page
        {
            //Clase que contiene las funciones de insercion, eliminar, modificar y busquedas por criterior
            clsReporteHoras ReporteHotas = new clsReporteHoras();
          
            private string gridMessage = null;


            protected void Page_Load(object sender, EventArgs e)
            {

                //Carga solamente la primera vez que se inicia la pagina, dejando los valores seleccionados despues de hacer otro postback
                if (!Page.IsPostBack)
                {
                            
                   //Se inicializan los valores de fecha inicial y fecha final en la seccion de busqueda
                   dpFechaInicio.SelectedDate = DateTime.Now.Date;
                   string ls_dia = "";
                   int li_numDia = 0;

                   //Llena la lista de empleados
                   LLenarEmpleados();

                   //Usuario que se logeo en la aplicacion
                   ddlConsultor.SelectedValue = "agondola";

                   //LLena la lista de clientes
                    LLenarClientes();
                    
                    //Llena la lista de proyectos dependiendo del cliente seleccionado
                    llenarProyectos(Convert.ToInt32(ddlCLiente.SelectedValue));

                    //Llena la lista de estados de las tareas del reporte
                   // llenarEstadoTareas();

                    //Permite asignar el rango de fecha al cual el usuario estara permitido a ingresar los reportes de hora
                     RangoFecha();

                    //Permite cargar el grid de reporte de hora del empleado despendiendo de los criterios seleccionados
                    //fLLenarGV();

                    //Se utiliza para que se permita insertar, modificar y eliminar el registro en la misma fila
                     RadGrid1.MasterTableView.EditMode = GridEditMode.InPlace;

                 }

            }


            /// <summary>
            /// Permite cargar la lista de reporte de hora del empleado despendiendo de los criterios seleccionados
            /// </summary>
            public void fLLenarGV()
            {

                try
                {

                   DataSet dtsDatos = new DataSet();

                   DataTable dt = new DataTable("TblRegistros");

                   DataRow dr;

                   int li_totalHoras = 0;

                   //Limpia el label capturador de los errores
                   lblMensajes.Style.Add("display", "");
                   lblMensajes.Text = "";

                   //Se le asigna al dataSet los valores recuperados del reporte de hora por los criterios seleccionados por el usuario  
                   dtsDatos = ReporteHotas.Select_Reporte_Horas(Convert.ToString(ddlConsultor.SelectedValue), Convert.ToInt32(ddlCLiente.SelectedValue), Convert.ToInt32(dllProyecto.SelectedValue),
                              dpFechaInicio.SelectedDate.Value, dpFechaFin.SelectedDate.Value);

                    //Se crea un datatable con los nombres de las columnas a desplegar en la lista de reportes de horas
                    dt.Columns.Add("id_reporte");
                    dt.Columns.Add("f_tarea");
                    dt.Columns.Add("id_estado");
                    dt.Columns.Add("descripcion_estado");
                    dt.Columns.Add("descripcionTarea");
                  
                    dt.Columns.Add("cantidadHoraTarea");
                    dt.Columns.Add("comando"); //campo utilizado para verificar si es un registro nuevo o un registro a actualizar


                   //Se utiliza para agregar una nueva fila si no se recuperan datos en la consulta
                   if( dtsDatos.Tables[0].Rows.Count == 0 ){
     
                       dr = dt.NewRow();
                       
                       //Se asignan valores a los registros para cargar el data table con informacion
                       dr["id_reporte"] = "";
                       dr["f_tarea"] = "";
                       dr["id_estado"] = "";
                       dr["descripcion_estado"] = "";
                       dr["descripcionTarea"] = "";
                      
                       dr["cantidadHoraTarea"] = "";
                       dr["comando"] = "N";  //campo utilizado para verificar si es un registro nuevo o un registro a actualizar

                       dt.Rows.Add(dr);
                    
                        }

                    else
                   {
                       //Si devuelve registros se le asigna al campo comando: U, que significa que esa fila se actualizara
                       for (int i = 0; i < dtsDatos.Tables[0].Rows.Count; i++)
                       {

                           dr = dt.NewRow();

                           //Se asignan valores a los registros para cargar el data table con informacion
                           dr["id_reporte"] = dtsDatos.Tables[0].Rows[i]["id_reporte"];
                           dr["f_tarea"] = dtsDatos.Tables[0].Rows[i]["f_tarea"];
                           dr["id_estado"] = dtsDatos.Tables[0].Rows[i]["id_estado"];
                           dr["descripcion_estado"] = dtsDatos.Tables[0].Rows[i]["descripcion_estado"];
                           dr["descripcionTarea"] = dtsDatos.Tables[0].Rows[i]["descripcionTarea"];
                   
                           dr["cantidadHoraTarea"] = dtsDatos.Tables[0].Rows[i]["cantidadHoraTarea"];

                           //Se calcula el total de horas trabajadas por el empleado, por los criterios selecionados
                           li_totalHoras = li_totalHoras + Convert.ToInt32(dtsDatos.Tables[0].Rows[i]["cantidadHoraTarea"]);

                           dr["comando"] = "U";   //campo utilizado para verificar si es un registro nuevo o un registro a actualizar

                           dt.Rows.Add(dr);

                       }

                   }


                   //Se asigna el DataTable al grid de "gvDatosReporte" para desplegar la lista de reportes del empleado por los criterios selecionados
                    //gvDatosReporte.DataSource = dt;              
                    //gvDatosReporte.DataBind();

                    //gvDatosReporte.Visible = true;

                    //Le asigno la suma de las horas trabajadas por el empleado a la caja de texto
                    txtHorastrabajadas.Text = Convert.ToString(li_totalHoras);


                    /////////////////////////////////
                    //RadGrid1.DataSource = dt;
                    //RadGrid1.DataBind();

                    //RadGrid1.Visible = true;


                    

                }
                catch (Exception ex)
                {
                    lblMensajes.Style.Add("display", "");
                    lblMensajes.Text = ex.Message;
                }

            }




            /// <summary>
            ///Se utiliza para cargar la lista de empleados
            /// </summary>
            public void LLenarEmpleados()
            {
                try
                {
                    DataSet dtsDatos = new DataSet();

                    //Se obtiene la lista de empleados
                    dtsDatos = ReporteHotas.Select_Empleados();

                    //Se carga el combo de consultor
                    ddlConsultor.DataSource = dtsDatos;
                    ddlConsultor.DataTextField = "nombre";
                    ddlConsultor.DataValueField = "id_empleado";
                    ddlConsultor.DataBind();

                    ddlConsultor.SelectedIndex = 0;
                }

                catch (Exception ex)
                {

                    lblMensajes.Style.Add("display", "");
                    lblMensajes.Text = ex.Message;
                }
            }


        


            /// <summary>
            ///Se utiliza para cargar la lista de clientes
            /// </summary>
            public void LLenarClientes()
            {
                try
                {
                    DataSet dtsDatos = new DataSet();

                    //Se obtiene la lista de clientes             
                    dtsDatos =  ReporteHotas.Select_Clientes();

                    //Se carga el combo de clientes
                    ddlCLiente.DataSource = dtsDatos;
                    ddlCLiente.DataTextField = "nombre";
                    ddlCLiente.DataValueField = "id_cliente";
                    ddlCLiente.DataBind();

                    ddlCLiente.SelectedIndex = 0;
                }

                catch (Exception ex)
                {

                    lblMensajes.Style.Add("display", "");
                    lblMensajes.Text = ex.Message;
                 }
            }


            /// <summary>
            /// Se utiliza para cargar la lista de proyectos dependiendo el cliente seleccionado
            /// </summary>
            public void llenarProyectos(int li_id_cliente)
            {
                try
                {

                    DataSet dtsDatos = new DataSet();

                    //Se obtiene la lista de proyectos por el cliente seleccionado
                    dtsDatos = ReporteHotas.Select_Proyectos(li_id_cliente);

                    //Se carga el combo de proyecto
                    dllProyecto.DataSource = dtsDatos;
                    dllProyecto.DataTextField = "nombre";
                    dllProyecto.DataValueField = "id_proyecto";
                    dllProyecto.DataBind();

                    dllProyecto.SelectedIndex = 0;

                }

                catch (Exception ex)
                {
                    lblMensajes.Style.Add("display", "");
                    lblMensajes.Text = ex.Message;
                }

            }




            /// <summary>
            /// Selecciona la lista de proyectos dependiendo del cliente seleccionado
            /// </summary>
            /// <param name="sender"></param>
            /// <param name="e"></param>
            protected void ddlCLiente_SelectedIndexChanged(object sender, RadComboBoxSelectedIndexChangedEventArgs e)
            {
                try
                {
                    //Se carga la lista de proyectos dependiendo el cliente seleccionado
                    llenarProyectos(Convert.ToInt32(ddlCLiente.SelectedValue));

                }
                catch (Exception ex)
                {
                    lblMensajes.Style.Add("display", "");
                    lblMensajes.Text = ex.Message;
                }
            }

          

            /// <summary>
            /// Permite asignarle el rango de fecha inicio y fin para realizar la carga de reporte de horas
            /// </summary>
            public void RangoFecha ()
               {

                 try
                 {
                
                //controles de fecha
                string ls_dia = "";
                int li_numDia = 0;

                //Se escoje el nombre del dia para realizar el proceso de armar el rango de fecha inicial y rango de fecha final
                ls_dia = Convert.ToString(dpFechaInicio.SelectedDate.Value.DayOfWeek);

                switch (ls_dia)
                {
                    case "Monday":

                        li_numDia = 0;

                        break;
                    case "Tuesday":

                        li_numDia = -1;

                        break;
                    case "Wednesday":

                        li_numDia = -2;

                        break;
                    case "Thursday":

                        li_numDia = -3;

                        break;
                    case "Friday":

                        li_numDia = -4;

                        break;
                    case "Saturday":

                        li_numDia = -5;

                        break;
                    case "Sunday":

                        li_numDia = -6;

                        break;
                    default:
                        break;
                }

                //Rango inicial en la seccion de busqueda
                dpFechaInicio.SelectedDate = Convert.ToDateTime(dpFechaInicio.SelectedDate).AddDays(Convert.ToInt32(li_numDia));

                //Rango final en la seccion de busqueda
                dpFechaFin.SelectedDate = Convert.ToDateTime(dpFechaInicio.SelectedDate).AddDays(+6);
                
                //Fecha minima que se podra ingresar la tarea
                //RadGrid1.Item("id_reporte") = Convert.ToDateTime(dpFechaInicio.SelectedDate);

                   
                //dpFecha.MinDate = Convert.ToDateTime(dpFechaInicio.SelectedDate);
                //Fecha maxima que se podra ingresar la tarea
                //dpFecha.MaxDate = Convert.ToDateTime(dpFechaFin.SelectedDate);

                }
                catch (Exception ex)
                {
                    lblMensajes.Style.Add("display", "");
                    lblMensajes.Text = ex.Message;
                }

        }

            /// <summary>
            /// Permite colocar el rango de fecha de inicio y fecha fin al cual el empleado puede ingresar las tareas
            /// </summary>
            /// <param name="sender"></param>
            /// <param name="e"></param>
            protected void dpFechaInicio_SelectedDateChanged(object sender, SelectedDateChangedEventArgs e)
            {
                try
                {

                    //Permite colocar el rango de fecha de inicio y fecha fin al cual el empleado puede ingresar las tareas
                    RangoFecha();

                }
                catch (Exception ex)
                {
                    lblMensajes.Style.Add("display", "");
                    lblMensajes.Text = ex.Message;
                }
            }



            protected void RadGrid1_UpdateCommand(object source, GridCommandEventArgs e)
            {
                Hashtable oldValues = new Hashtable();
                Hashtable newValues = new Hashtable();
                GridEditableItem editedItem = e.Item as GridEditableItem;
                oldValues = (Hashtable)editedItem.SavedOldValues;
                e.Item.OwnerTableView.ExtractValuesFromItem(newValues, editedItem);
            }




            protected void RadGrid1_ItemUpdated(object source, Telerik.Web.UI.GridUpdatedEventArgs e)
            {


                GridEditableItem item = (GridEditableItem)e.Item;
                String id = Convert.ToString(item.GetDataKeyValue("id_reporte"));


                if (e.Exception != null)
                {
                    e.KeepInEditMode = true;
                    e.ExceptionHandled = true;
                    SetMessage("Reporte con ID " + id + " no pudo ser actualizado. Razón: " + e.Exception.Message);
                }
                else
                {
                    SetMessage("Reporte con ID " + id + " fue actualizado!");
                }
            }

            protected void RadGrid1_ItemInserted(object source, GridInsertedEventArgs e)
            {

             
                if (e.Exception != null)
                {
                    e.ExceptionHandled = true;
                    SetMessage("La tarea no se puede insertar. Razón: " + e.Exception.Message);
                }
                else
                {
                    SetMessage("La nueva tarea se inserto!");
                }
            }

            protected void RadGrid1_ItemDeleted(object source, GridDeletedEventArgs e)
            {
                GridDataItem dataItem = (GridDataItem)e.Item;
                String id =  Convert.ToString(dataItem.GetDataKeyValue("id_reporte"));


                if (e.Exception != null)
                {
                    e.ExceptionHandled = true;
                    SetMessage("Tarea con ID " + id + " no fue eliminada. Razón: " + e.Exception.Message);
                }
                else
                {
                    SetMessage("Tarea con ID " + id + " fue eliminada!");
                }
            }





            private void DisplayMessage(string text)
            {
                RadGrid1.Controls.Add(new LiteralControl(string.Format("<span style='color:red'>{0}</span>", text)));
            }

            private void SetMessage(string message)
            {
                gridMessage = message;
            }



            protected void RadGrid1_DataBound(object sender, EventArgs e)
            {
                if (!string.IsNullOrEmpty(gridMessage))
                {
                    DisplayMessage(gridMessage);
                }
            }

            protected void RadGrid1_NeedDataSource(object sender, GridNeedDataSourceEventArgs e)
            {

                //fLLenarGV();


            }

        }
         
     }
Back to Top