/// <summary>
        /// ACTUALIZAR
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void BTN_EditGrilla_Click(object sender, EventArgs e)
        {
            try
            {
                //===========================================================
                // DECLARACION DE VARIABLES
                //===========================================================
                int      ID_CLUSTER     = 0;
                int      ID_PAIS        = 0;
                string   CODIGO         = "";
                string   DESCRIPCION    = "";
                bool     ESTADO_CLUSTER = false;
                SMetodos Servicio       = new SMetodos();



                //===========================================================
                // VALIDACION DE OBSERVACION
                //===========================================================
                if (string.IsNullOrEmpty(TXT_ID.Text))
                {
                    throw new Exception("NO EXISTE ID VALIDO PARA CREAR Y TAMPOCO ACTUALIZAR");
                }
                else
                {
                    try
                    {
                        ID_CLUSTER = Convert.ToInt32(TXT_ID.Text);
                    }
                    catch
                    {
                        throw new Exception("ID ESPECIFICADO NO ES UN NUMERO VALIDO");
                    }
                }

                //===========================================================
                // CODIGO
                //===========================================================
                if (ID_CLUSTER > 0)
                {
                    if (CHK_OPCION.Checked == true)
                    {
                        if (string.IsNullOrEmpty(TXT_CODIGO.Text))
                        {
                            throw new Exception("NO EXISTE CODIGO VALIDO PARA CREAR Y TAMPOCO ACTUALIZAR");
                        }
                        else
                        {
                            CODIGO = TXT_CODIGO.Text;
                        }
                    }
                }
                else
                {
                    if (string.IsNullOrEmpty(TXT_CODIGO.Text))
                    {
                        throw new Exception("NO EXISTE CODIGO VALIDO PARA CREAR Y TAMPOCO ACTUALIZAR");
                    }
                    else
                    {
                        CODIGO = TXT_CODIGO.Text;
                    }
                }

                //===========================================================
                // VALIDACION DE OBSERVACION
                //===========================================================
                if (string.IsNullOrEmpty(TXT_DESCRIPCION.Text))
                {
                    throw new Exception("DEBE INGRESAR UNA DESCRIPCION");
                }
                else
                {
                    DESCRIPCION = TXT_DESCRIPCION.Text;
                }
                //===========================================================
                // ESTADO
                //===========================================================
                ESTADO_CLUSTER = CHK_ESTADO.Checked;

                //===========================================================
                // PAIS
                //===========================================================
                if (DDL_PAIS.Items.Count > 0)
                {
                    ID_PAIS = Convert.ToInt32(DDL_PAIS.SelectedValue);
                }
                else
                {
                    throw new Exception("NO EXISTEN PAIS EN LISTA");
                }

                //===========================================================
                // VER SI ACTUALIZAMOS O INGRESAMOS
                //===========================================================
                if (ID_CLUSTER == 0)
                {
                    iSP_CREATE_CLUSTER ParametrosInput = new iSP_CREATE_CLUSTER();
                    ParametrosInput.ID_PAIS     = ID_PAIS;
                    ParametrosInput.CODIGO      = CODIGO;
                    ParametrosInput.DESCRIPCION = DESCRIPCION;
                    ParametrosInput.ESTADO      = ESTADO_CLUSTER;



                    //=======================================================
                    // LLAMADA A SERVICIO
                    //=======================================================
                    oSP_RETURN_STATUS ESTADO = Servicio.SP_CREATE_CLUSTER(ParametrosInput);

                    if (ESTADO.RETURN_VALUE == 1)
                    {
                        MensajeLOGEdit("I", "CLUSTER FUE CREADO CORRECTAMANTE", "MSG_CLUSTER_INFO", "MSG_CLUSTER_ALERTA");
                        LEER_CLUSTER();
                        return;
                    }

                    if (ESTADO.RETURN_VALUE == -1)
                    {
                        MensajeLOGEdit("A", "CÓDIGO DE  CLUSTER YA EXISTE EN SISTEMA", "MSG_CLUSTER_INFO", "MSG_CLUSTER_ALERTA");
                        return;
                    }

                    if (ESTADO.RETURN_VALUE == 0)
                    {
                        MensajeLOGEdit("A", "CLUSTER NO FUE ACTUALIZADO", "MSG_CLUSTER_INFO", "MSG_CLUSTER_ALERTA");
                        return;
                    }
                }
                else
                {
                    iSP_UPDATE_CLUSTER ParametrosInput = new iSP_UPDATE_CLUSTER();
                    ParametrosInput.ID_CLUSTER  = ID_CLUSTER;
                    ParametrosInput.ID_PAIS     = ID_PAIS;
                    ParametrosInput.CODIGO      = CODIGO;
                    ParametrosInput.DESCRIPCION = DESCRIPCION;
                    ParametrosInput.ESTADO      = ESTADO_CLUSTER;
                    ParametrosInput.OPCION      = CHK_OPCION.Checked;


                    //=======================================================
                    // LLAMADA A SERVICIO
                    //=======================================================
                    oSP_RETURN_STATUS ESTADO = Servicio.SP_UPDATE_CLUSTER(ParametrosInput);

                    if (ESTADO.RETURN_VALUE == 1)
                    {
                        MensajeLOGEdit("I", "CLUSTER FUE ACTUALIZADO CORRECTAMANTE", "MSG_CLUSTER_INFO", "MSG_CLUSTER_ALERTA");
                        LEER_CLUSTER();
                        return;
                    }

                    if (ESTADO.RETURN_VALUE == -1)
                    {
                        MensajeLOGEdit("A", "YA EXISTE CLÚSTER CON ESE CÓDIGO", "MSG_CLUSTER_INFO", "MSG_CLUSTER_ALERTA");
                        LEER_CLUSTER();
                        return;
                    }

                    if (ESTADO.RETURN_VALUE == 0)
                    {
                        MensajeLOGEdit("A", "CLUSTER NO FUE ACTUALIZADO", "MSG_CLUSTER_INFO", "MSG_CLUSTER_ALERTA");
                        return;
                    }
                }
            }
            catch (EServiceRestFulException srv)
            {
                MensajeLOGEdit("A", srv.Message, "MSG_CLUSTER_INFO", "MSG_CLUSTER_ALERTA");
            }
            catch (System.Exception ex)
            {
                MensajeLOGEdit("A", UThrowError.MensajeThrow(ex), "MSG_CLUSTER_INFO", "MSG_CLUSTER_ALERTA");
            }
        }