Buenísimo,
No conocía los detalles, pienso que entonces podría usar onDOMReady para ejecutar mi código ya que preciso que esté gx y el Div Container.
Gracias,
Pablo
No conocía los detalles, pienso que entonces podría usar onDOMReady para ejecutar mi código ya que preciso que esté gx y el Div Container.
Gracias,
Pablo
From: "Leonardo Silvestri" <leosil2@gmail.com>
To: usercontrols@gxtech.com.uy
Sent: Viernes, 28 de Septiembre 2012 16:39:44
Subject: Re: [usercontrols] Programación javascript sobre grilla
aca esta explicada la diferencia en YUI
To: usercontrols@gxtech.com.uy
Sent: Viernes, 28 de Septiembre 2012 16:39:44
Subject: Re: [usercontrols] Programación javascript sobre grilla
aca esta explicada la diferencia en YUI
Saludos,
Leonardo
2012/9/28 Leonardo Silvestri <leosil2@gmail.com>
perdon, recien miro los emails del foro.Si, excelente, de esa forma lo solucionás.Una salvedad: No se para el caso del YUI, pero generalmetne los frameworks tienen un "onload" o "load" y un ready, que se ejecutan en momentos diferentes.El "ready" es cuando se cargó el arbol del DOM por completo , el "onload" es cuando los elementos se renderizaron.El caso que los diferencia bien es cuando tenes imagenes a cargar, el ready no espera a que esas imagenes esten renderizadas en pantalla (que puede consumir varios segundos más)Por ejen JQuery tenes $(document).ready(function(){......... o $(function()..... que son lo mismo,y además existe el $(elemento DOM).load(function(){............, que se ejecuta cuando todos los subelementos son renderizados.$(window).load.. es equivalente a window.onload2012/9/28 Pablo Moleri <pablo@cybernet.com.uy>
Me autorespondo para que la solución quede aquí.
En base a lo que me pasó Leonardo.
Usando YUI 3 lo que hice para suscribir una función a la grilla fue lo siguiente:
YUI().use('node-core', 'node-base', function(Y) {
// Espera a que la pantalla se cargue, para que esten disponibles el Container y la variable 'gx'
Y.one(window).on('load', function(e) {
// La función check, verifica si está la tabla y le agrega un flag 'fixed', para saber que la función ya fue ejecutada.
div = Y.one("#GridContainerDiv");
var check = function(e) {
var table = div.one("table");
if (table && !table.get("fixed")) {
table.set("fixed", "true");
init_drag_drop();
}
}
// Suscribe la función check a los distintos eventos
gx.fx.obs.addObserver("gx.onload", window, check); // Cuando la página terminó de cargar
gx.fx.obs.addObserver("gx.onafterevent", window, check); // Después de un evento
gx.fx.obs.addObserver("grid.onafterrefresh", window, check); // Después de un autorefresh de la grilla
// Hace un check ahora por si la grilla ya se hubiera cargado.
check();
});
});
mifuncion(table) {
...
}
Acá dejo un link a la documentación que encontré:SAC #26806: Mecanismo de "observer" en el gxgral
http://www2.gxtechnical.com/portal/hgxpp001.aspx?15,4,61,O,S,0,,26806
Saludos,
PabloPablo Moleri
CybernetFrom: "Pablo Moleri" <pablo@cybernet.com.uy>
To: usercontrols@gxtech.com.uy
Sent: Jueves, 27 de Septiembre 2012 10:58:51
Subject: Re: [usercontrols] Programación javascript sobre grillaGracias Leonardo,
Tu respuesta es infinitamente útil, le estaba dando vueltas por el lado de Mutation Events, pero esto es mucho mejor!
De paso te hago otra consulta, por alguna razón mi javascript (agregado con JScriptSrc.Add) queda antes del de GX y parecería que cuando ejecuta mi javascript todavía no está declarada la variable "gx".
Podría subscribirme al evento onload de la página, y ejecutar recién allí mi código, pero te pregunto porque capaz que conocés una forma más fácil.
Saludos,
PabloFrom: "Pablo Moleri" <pablo@cybernet.com.uy>Subject: [usercontrols] Programación javascript sobre grillaHola,
En realidad no estoy queriendo desarrollar un user control, pero pregunto en este foro porque es el tipo de cosas que hacen los user controls.
La pregunta es:
¿Cómo ejecutar una función javascript cada vez que se dibuja la grilla?
Explicación:
Estoy usando YUI para hacer drag&drop sobre las filas de una grilla de forma de poder reordenarlas como uno quiere. Para esto necesito ejecutar una función javascript que inicializa el drag&drop, pero como la grilla se puede refrescar sin recargar la pantalla, quería saber como puedo enganchar mi función de manera que la inicialización se ejecute cada vez que se refresca la grilla.
Gracias,Pablo Moleri
0 Response to "Re: [usercontrols] Programación javascript sobre grilla"
Publicar un comentario