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 ("getConsultas"): try { sResultado += "OK@#@" + Administracion.CatalogoConsultas(aArgs[1]); } catch (Exception ex) { sResultado += "Error@#@" + Errores.mostrarError("Error al obtener las consultas.", ex); } break; case ("ejecutar"): try { if (HttpContext.Current.Cache["ConsultaADM_" + Session["GVT_IDFICEPI_ENTRADA"].ToString()] != null) { HttpContext.Current.Cache.Remove("ConsultaADM_" + Session["GVT_IDFICEPI_ENTRADA"].ToString()); } DataSet ds = Administracion.ejecutarConsultaDS(aArgs[1], aArgs[2]); HttpContext.Current.Cache.Insert("ConsultaADM_" + Session["GVT_IDFICEPI_ENTRADA"].ToString(), ds, null, DateTime.Now.AddMinutes(5), TimeSpan.Zero); sResultado += "OK@#@"; } catch (Exception ex) { sResultado += "Error@#@" + Errores.mostrarError("Error al ejecutar la consulta.", 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 { Master.nBotonera = 20; Master.Botonera.ItemClick += new ToolBarEventHandler(this.Botonera_Click); Master.bFuncionesLocales = true; Master.FuncionesJavaScript.Add("Javascript/draganddrop.js"); Master.FuncionesJavaScript.Add("Javascript/boxover.js"); Master.FuncionesJavaScript.Add("Javascript/documentos.js"); Master.TituloPagina = "Administración"; if (!Page.IsCallback) { //Para que se muestre la botonera, únicamente hay que indicar el número de botonera //y crear el manejador de eventos para la misma. if (!Page.IsPostBack) { try { string sDatos = Administracion.CatalogoConsultas("1"); string[] aDatos = Regex.Split(sDatos, "@#@"); strTablaHTML = aDatos[0]; nConsultas = int.Parse(aDatos[1]); } catch (Exception ex) { Master.sErrores = Errores.mostrarError("Error al obtener los datos.", ex); } } //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 (Exception ex) { Master.sErrores = Errores.mostrarError("Error al cargar la página.", ex); } }