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["IDRED"] == null)
        {
            _callbackResultado = aArgs[0] + @"@#@Error@#@SESIONCADUCADA"; return;
        }
        ;


        try
        {
            //2º Aquí realizaríamos el acceso a BD, etc,...
            switch (aArgs[0])
            {
            case ("grabar"):
                Profesional.Grabar(aArgs[1]);
                sResultado += "OK@#@";
                break;

            case ("buscar"):
                sResultado += "OK@#@" + Profesional.CatalogoProfesionales(aArgs[1], aArgs[2], aArgs[3], (aArgs[4] == "") ? null : (int?)int.Parse(aArgs[4]));
                break;
            }
        }
        catch (Exception ex)
        {
            if (ex.Message.IndexOf("ErrorControlado") > -1)
            {
                sResultado += "Error@#@" + ex.Message;
            }
            else
            {
                switch (aArgs[0])
                {
                case ("grabar"):
                    sResultado += "Error@#@" + Errores.mostrarError("Error al guardar", ex);
                    break;

                case ("buscar"):
                    sResultado += "Error@#@" + Errores.mostrarError("Error al buscar", ex);
                    break;
                }
            }
        }
        //3º Damos contenido a la variable que se envía de vuelta al cliente.
        _callbackResultado = sResultado;
    }