public void RaiseCallbackEvent(string eventArg)
    {
        string sResultado = "";

        //1º Si hubiera argumentos, se recogen y tratan.
        //string MisArg = eventArg;
        string[] aArgs = Regex.Split(eventArg, "@#@");
        sResultado = aArgs[0] + @"@#@"; if (Session["GVT_IDRED"] == null)
        {
            _callbackResultado = aArgs[0] + @"@#@Error@#@SESIONCADUCADA"; return;
        }
        ;

        //2º Aquí realizaríamos el acceso a BD, etc,...
        switch (aArgs[0])
        {
        case ("aprobar"):
            try
            {
                Session["GVT_ACCPENDIENTE"] = "APROBAR";
                CABECERAGV.Aprobar(aArgs[1]);
                int[] nDesgloseNotasPendientes = Profesional.nDesgloseNotasPendientes((int)Session["GVT_IDFICEPI"]);
                nNotasPendientesAprobar = nDesgloseNotasPendientes[1];
                nNotasPendientesAceptar = nDesgloseNotasPendientes[2];

                sResultado += "OK@#@" + nNotasPendientesAprobar.ToString() + "@#@" + nNotasPendientesAceptar.ToString();
            }
            catch (Exception ex)
            {
                sResultado += "Error@#@" + Errores.mostrarError("Error al aprobar las solicitudes marcadas.", ex);
            }
            break;

        case ("aceptar"):
            try
            {
                Session["GVT_ACCPENDIENTE"] = "ACEPTAR";
                CABECERAGV.Aceptar(aArgs[1]);
                int[] nDesgloseNotasPendientes = Profesional.nDesgloseNotasPendientes((int)Session["GVT_IDFICEPI"]);
                nNotasPendientesAprobar = nDesgloseNotasPendientes[1];
                nNotasPendientesAceptar = nDesgloseNotasPendientes[2];
                sResultado += "OK@#@" + nNotasPendientesAprobar.ToString() + "@#@" + nNotasPendientesAceptar.ToString();
            }
            catch (Exception ex)
            {
                //sResultado += "Error@#@" + Errores.mostrarError("Error al aceptar las solicitudes marcadas.", ex);
                string[] aMsg = Regex.Split(ex.Message, "##EC##");

                if (aMsg[0] == "ErrorControlado")
                {
                    sResultado += "Error@#@" + aMsg[1];
                }
                else
                {
                    sResultado += "Error@#@" + Errores.mostrarError("Error al aceptar las solicitudes marcadas.", ex);
                }
            }
            break;

        case ("getPendientes"):
            try
            {
                Session["GVT_ACCPENDIENTE"] = aArgs[1];
                int[] nDesgloseNotasPendientes = Profesional.nDesgloseNotasPendientes((int)Session["GVT_IDFICEPI"]);
                nNotasPendientesAprobar = nDesgloseNotasPendientes[1];
                nNotasPendientesAceptar = nDesgloseNotasPendientes[2];

                sResultado += "OK@#@" + nNotasPendientesAprobar.ToString() + "@#@" + nNotasPendientesAceptar.ToString() + "@#@" + CABECERAGV.ObtenerNotasPendientesAprobarAceptar(aArgs[1], (int)Session["GVT_IDFICEPI"]);
            }
            catch (Exception ex)
            {
                sResultado += "Error@#@" + Errores.mostrarError("Error al aceptar las solicitudes marcadas.", ex);
            }
            break;
        }

        //3º Damos contenido a la variable que se envía de vuelta al cliente.
        _callbackResultado = sResultado;
    }
    protected void Page_Load(object sender, EventArgs e)
    {
        try
        {
            if (!Page.IsCallback)
            {
                Master.FuncionesJavaScript.Add("Javascript/boxover.js");
                //Master.FuncionesJavaScript.Add("Javascript/jquery.min.js");
                Master.FuncionesJavaScript.Add("Javascript/imgbubbles.js");
                Master.FicherosCSS.Add("Capa_Presentacion/AccionesPendientes/css/AccionesPendientes.css");
                Master.TituloPagina        = "Acciones pendientes";
                Master.bFuncionesLocales   = true;
                Master.Botonera.ItemClick += new ToolBarEventHandler(this.Botonera_Click);

                if (Request.QueryString["so"] != null)
                {
                    Session["GVT_ACCPENDIENTE"] = "APROBAR";
                }

                int[] nDesgloseNotasPendientes = Profesional.nDesgloseNotasPendientes((int)Session["GVT_IDFICEPI"]);
                nNotasPendientesAprobar = nDesgloseNotasPendientes[1];
                nNotasPendientesAceptar = nDesgloseNotasPendientes[2];

                if (nDesgloseNotasPendientes[0] == 0)
                {
                    try
                    {
                        Response.Redirect("~/Capa_Presentacion/Inicio/Default.aspx", true);
                    }
                    catch (System.Threading.ThreadAbortException) { }
                }

                if (Session["GVT_ACCPENDIENTE"].ToString() == "ACEPTAR" && nNotasPendientesAceptar > 0)
                {
                    Master.nBotonera    = 14;
                    sOpcionSeleccionada = "ACEPTAR";
                }
                else
                {
                    if (nNotasPendientesAprobar > 0)
                    {
                        Master.nBotonera    = 12;
                        sOpcionSeleccionada = "APROBAR";
                    }
                    else
                    {
                        Master.nBotonera    = 14;
                        sOpcionSeleccionada = "ACEPTAR";
                    }
                }


                string[] aHTMLTablas = Regex.Split(CABECERAGV.ObtenerNotasPendientesAprobarAceptar(sOpcionSeleccionada, (int)Session["GVT_IDFICEPI"]), "#@septabla@#");
                strHTMLTablaNotas = aHTMLTablas[0];
                strHTMLTablaBonos = aHTMLTablas[1];
                strHTMLTablaPagos = aHTMLTablas[2];
            }

            //1º Se indican (por este orden) la función a la que se va a devolver el resultado
            //   y la función que va a acceder al servidor
            string cbRespuesta = Page.ClientScript.GetCallbackEventReference(this, "arg", "RespuestaCallBack", "context", false);
            string cbLlamada   = "function RealizarCallBack(arg, context)" + "{" + cbRespuesta + ";" + "}";
            //2º Se "registra" la función que va a acceder al servidor.
            Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "RealizarCallBack", cbLlamada, true);
        }
        catch (System.Threading.ThreadAbortException) { }
        catch (Exception ex)
        {
            Master.sErrores = Errores.mostrarError("Error al cargar la página.", ex);
        }
    }