Exemplo n.º 1
0
        protected void _gridHorario_RowCommand(object sender, GridViewCommandEventArgs e)
        {
            Control controlDesplegable; // Label que se encuentra en cada celda del grid, se utiliza para lo que se va a desplegar en la celda
            Control controlEditable;    // Textbox que se enceuntra en cada celda del grid, se utiliza para poder editar la celda
            _btnGuardarHorario.Enabled = true;
            _controladorHorario = new ControladorHorario();
            if ((int)ViewState["filaEditada"] > -1) // Verificar si hay alguna celda editada para guardar lo que hay en esta
            {
                String textoTurnoViejo =  ((Label)_gridHorario.Rows[(int)ViewState["filaEditada"]].Cells[(int)ViewState["columnaEditada"]].Controls[1]).Text;
                String textoTurnoNuevo = ((TextBox)_gridHorario.Rows[(int)ViewState["filaEditada"]].Cells[(int)ViewState["columnaEditada"]].Controls[3]).Text;
                int idTurno = -1;
                if ((textoTurnoViejo.Equals("")) && (!textoTurnoNuevo.Equals(""))) // Un turno nuevo
                {
                    char dia = ' ';
                    switch ((int)ViewState["columnaEditada"])
                    {
                        case 2:   // Lunes
                            dia = 'L';
                            break;
                        case 3:   // Martes
                            dia = 'K';
                            break;
                        case 4:   // Miércoles
                            dia = 'M';
                            break;
                        case 5:   // Jueves
                            dia = 'J';
                            break;
                        case 6:   // Viernes
                            dia = 'V';
                            break;
                        case 7:   // Sábado
                            dia = 'S';
                            break;
                        case 8:   // Domingo
                            dia = 'D';
                            break;
                    }
                    String hora = ((Label)_gridHorario.Rows[(int)ViewState["filaEditada"]].Cells[1].Controls[1]).Text;
                    String[] horas = hora.Split(' ');
                    _realizoCambio = _controladorHorario.insertarTurno(dia, horas[0], horas[2], textoTurnoNuevo, (int)ViewState["idHorario"]);
                    if (_realizoCambio)
                    {
                        _lblMensaje.Text = "Se ha insertado con éxito el turno";
                        _imgMensaje.ImageUrl = "~/Imagenes/ok.png";
                        _lblMensaje.Visible = true;
                        _imgMensaje.Visible = true;
                    }
                    else
                    {
                        _lblMensaje.Text = "Error al crear el nuevo turno";
                        _imgMensaje.ImageUrl = "~/Imagenes/Error.png";
                        _lblMensaje.Visible = true;
                        _imgMensaje.Visible = true;
                    }
                }
                else if ((!textoTurnoNuevo.Equals(textoTurnoViejo)) && (!textoTurnoNuevo.Equals(""))) // Si cambio el dato del turno
                {
                    String hola = ((Label)_gridHorario.Rows[(int)ViewState["filaEditada"]].Cells[(int)ViewState["columnaEditada"]].Controls[5]).Text;
                    idTurno = Convert.ToInt32(hola);
                    _realizoCambio = _controladorHorario.modificarTurno(idTurno, textoTurnoNuevo);
                    if (_realizoCambio)
                    {
                        _lblMensaje.Text = "Se ha cambiado el turno con éxito";
                        _imgMensaje.ImageUrl = "~/Imagenes/ok.png";
                        _lblMensaje.Visible = true;
                        _imgMensaje.Visible = true;
                    }
                    else
                    {
                        _lblMensaje.Text = "Error al modificar el turno";
                        _imgMensaje.ImageUrl = "~/Imagenes/Error.png";
                        _lblMensaje.Visible = true;
                        _imgMensaje.Visible = true;
                    }
                }
                else if ((!textoTurnoViejo.Equals("")) && (textoTurnoNuevo.Equals(""))) // Si elminó el dato del turno
                {
                    idTurno = Convert.ToInt32(((Label)_gridHorario.Rows[(int)ViewState["filaEditada"]].Cells[(int)ViewState["columnaEditada"]].Controls[5]).Text);
                    _realizoCambio = _controladorHorario.borrarTurno(idTurno);
                    if (_realizoCambio)
                    {
                        _lblMensaje.Text = "Se ha borrado el turno con éxito";
                        _imgMensaje.ImageUrl = "~/Imagenes/ok.png";
                        _lblMensaje.Visible = true;
                        _imgMensaje.Visible = true;
                    }
                    else
                    {
                        _lblMensaje.Text = "Error al intentar borrar el turno";
                        _imgMensaje.ImageUrl = "~/Imagenes/Error.png";
                        _lblMensaje.Visible = true;
                        _imgMensaje.Visible = true;
                    }
                }
                ((Label)_gridHorario.Rows[(int)ViewState["filaEditada"]].Cells[(int)ViewState["columnaEditada"]].Controls[1]).Text = textoTurnoNuevo;
                _gridHorario.Rows[(int)ViewState["filaEditada"]].Cells[(int)ViewState["columnaEditada"]].Controls[1].Visible = true;
                _gridHorario.Rows[(int)ViewState["filaEditada"]].Cells[(int)ViewState["columnaEditada"]].Controls[3].Visible = false;
            }
            // Obtener la fila y columna de la celda
            int fila = int.Parse(e.CommandArgument.ToString());
            int columna = int.Parse(Request.Form["__EVENTARGUMENT"]);

            // Obtener el label de la celda (control desplegable) y ocultarlo
            controlDesplegable = _gridHorario.Rows[fila].Cells[columna].Controls[1];
            controlDesplegable.Visible = false;
            // Obtener el textbox de la celda (control editable) y hacelo visible, para que se pueda utilizar
            controlEditable = _gridHorario.Rows[fila].Cells[columna].Controls[3];
            ((TextBox)controlEditable).Text = ((Label)controlDesplegable).Text.Replace("<br/>", " ");
            controlEditable.Visible = true;
            // Setear el foco al control editable
            ClientScript.RegisterStartupScript(GetType(), "SetFocus", "<script>document.getElementById('" + controlEditable.ClientID + "').focus();</script>");
            // Seleccionar el texto del control desplegable, esto para que este en foco
            if (controlEditable is TextBox)
            {
                ((TextBox)controlEditable).Attributes.Add("onfocus", "this.select()");
            }
            ViewState["filaEditada"] = fila; // Guardas la fila de la celda que se editó
            ViewState["columnaEditada"] = columna; // Guardar la columna de la celda que se editó
        }
Exemplo n.º 2
0
 protected void _btnGuardarHorario_Click(object sender, EventArgs e)
 {
     _sesion = new Sesion();
     _cookieActual = _sesion.verificarValidez(Request.Cookies["PS"]);
     if (_cookieActual == null) // Si la cookie expira redirecciona a la pantalla de Login
         Response.Redirect("../Autentificacion/Login.aspx"); //
     else // Volver a crear la cookie en el cliente, con el nuevo tiempo de expiración
         Response.SetCookie(_cookieActual);
     _controladorHorario = new ControladorHorario();
     String textoTurnoViejo = ((Label)_gridHorario.Rows[(int)ViewState["filaEditada"]].Cells[(int)ViewState["columnaEditada"]].Controls[1]).Text;
     String textoTurnoNuevo = ((TextBox)_gridHorario.Rows[(int)ViewState["filaEditada"]].Cells[(int)ViewState["columnaEditada"]].Controls[3]).Text;
     int idTurno = -1;
     if ((textoTurnoViejo.Equals("")) && (!textoTurnoNuevo.Equals(""))) // Un turno nuevo
     {
         char dia = ' ';
         switch ((int)ViewState["columnaEditada"])
         {
             case 2:   // Lunes
                 dia = 'L';
                 break;
             case 3:   // Martes
                 dia = 'K';
                 break;
             case 4:   // Miércoles
                 dia = 'M';
                 break;
             case 5:   // Jueves
                 dia = 'J';
                 break;
             case 6:   // Viernes
                 dia = 'V';
                 break;
             case 7:   // Sábado
                 dia = 'S';
                 break;
             case 8:   // Domingo
                 dia = 'D';
                 break;
         }
         String hora = ((Label)_gridHorario.Rows[(int)ViewState["filaEditada"]].Cells[1].Controls[1]).Text;
         String[] horas = hora.Split(' ');
         _realizoCambio = _controladorHorario.insertarTurno(dia, horas[0], horas[2], textoTurnoNuevo, (int)ViewState["idHorario"]);
         if (_realizoCambio)
         {
             _lblMensaje.Text = "Se ha insertado con éxito el turno";
             _imgMensaje.ImageUrl = "~/Imagenes/ok.png";
             _lblMensaje.Visible = true;
             _imgMensaje.Visible = true;
         }
         else
         {
             _lblMensaje.Text = "Error al crear el nuevo turno";
             _imgMensaje.ImageUrl = "~/Imagenes/Error.png";
             _lblMensaje.Visible = true;
             _imgMensaje.Visible = true;
         }
     }
     else if ((!textoTurnoNuevo.Equals(textoTurnoViejo)) && (!textoTurnoNuevo.Equals(""))) // Si cambio el dato del turno
     {
         idTurno = Convert.ToInt32(((Label)_gridHorario.Rows[(int)ViewState["filaEditada"]].Cells[(int)ViewState["columnaEditada"]].Controls[5]).Text);
         _realizoCambio = _controladorHorario.modificarTurno(idTurno, textoTurnoNuevo);
         if (_realizoCambio)
         {
             _lblMensaje.Text = "Se ha cambiado el turno con éxito";
             _imgMensaje.ImageUrl = "~/Imagenes/ok.png";
             _lblMensaje.Visible = true;
             _imgMensaje.Visible = true;
         }
         else
         {
             _lblMensaje.Text = "Error al modificar el turno";
             _imgMensaje.ImageUrl = "~/Imagenes/Error.png";
             _lblMensaje.Visible = true;
             _imgMensaje.Visible = true;
         }
     }
     else if ((!textoTurnoViejo.Equals("")) && (textoTurnoNuevo.Equals(""))) // Si elminó el dato del turno
     {
         idTurno = Convert.ToInt32(((Label)_gridHorario.Rows[(int)ViewState["filaEditada"]].Cells[(int)ViewState["columnaEditada"]].Controls[5]).Text);
         _realizoCambio = _controladorHorario.borrarTurno(idTurno);
         if (_realizoCambio)
         {
             _lblMensaje.Text = "Se ha borrado el turno con éxito";
             _imgMensaje.ImageUrl = "~/Imagenes/ok.png";
             _lblMensaje.Visible = true;
             _imgMensaje.Visible = true;
         }
         else
         {
             _lblMensaje.Text = "Error al intentar borrar el turno";
             _imgMensaje.ImageUrl = "~/Imagenes/Error.png";
             _lblMensaje.Visible = true;
             _imgMensaje.Visible = true;
         }
     }
     ((Label)_gridHorario.Rows[(int)ViewState["filaEditada"]].Cells[(int)ViewState["columnaEditada"]].Controls[1]).Text = textoTurnoNuevo;
     _gridHorario.Rows[(int)ViewState["filaEditada"]].Cells[(int)ViewState["columnaEditada"]].Controls[1].Visible = true;
     _gridHorario.Rows[(int)ViewState["filaEditada"]].Cells[(int)ViewState["columnaEditada"]].Controls[3].Visible = false;
     _btnGuardarHorario.Enabled = false;
 }