Marc Rubiño

ASP.NET, C#, AJAX.NET, JavaScript, etc.

August 2007 - Artículos

[Ajax.Net] Iframe Redimensionable

Trabajar con iFrames es una tarea bastante ingrata sobre todo cuando te interesa que el contenedor se adapte al tamaño del contenido.
Buscando por internet encontré unos ejemplos muy interesantes:

  1. El de Microsoft http://support.microsoft.com/kb/278469/es
  2. El de los foros  http://www.forosdelweb.com/showthread.php?t=510457

Nos explican como aprovechar el evento onload del BODY para lanzar una función javaScript que recalcule el tamaño.

Pero que pasa si la página del iFrame utiliza Ajax.Net ?????

Pues que como ajax.net carga parcialmente la página no se lanza el evento onload de nuevo.Entonces seguí surfeando por la web y encontré otro artículo muy interesante http://netcodigo.webinfo.es/2007/02/02/controlar-llamadas-asincronas-con-aspnet-ajax/.

Con este artículo conocí la clase PageRequestManager clase encargada de controlar el renderizado parcial de las páginas, tenemos eventos, Métodos y propiedades para proporcionarnos este servicio.      

  • PageRequestManager Class
    • Events 
      • beginRequest Event
      • endRequest Event
      • initializeRequest Event
      • pageLoaded Event
      • pageLoading Event
    • Methods
      • abortPostBack Method
      • dispose Method
      • getInstance Method
    • Properties
      • isInAsyncPostBack Property  

Realmente muy interesante !!!

se me ocurren un montón de utilidades posibles ;-)
Podéis obtener más información en :
http://asp.net/ajax/documentation/live/clientreference/Sys.WebForms/PageRequestManagerClass/default.aspx

Bueno no me desviaré del tema y seguiremos con el ejemplo.

<asp:ScriptManager ID="ScriptManager1" runat="server" EnablePageMethods="True"></asp:ScriptManager><script type="text/javascript">var prm = Sys.WebForms.PageRequestManager.getInstance(); prm.add_endRequest(Redimensionar);onload = function Redimensionar(sender,art){top.window.document.getElementById("demoFrame").height = document.getElementById("aspnetForm").offsetHeight;top.window.document.getElementById("demoFrame").width = document.getElementById("aspnetForm").offsetWidth;}</script>
  1. Tenemos que activar la propiedad EnablePageMethods="True" he instanciar la clase PageRequestManager para utilizarla.
var prm = Sys.WebForms.PageRequestManager.getInstance();
  1. Asociamos el evento que nos interesa a una función javascript
prm.add_endRequest(Redimensionar);
  1. Creamos el script que redimensionará el iFrame.
    Para probar el código he creado un proyecto que utiliza una página con un iframe y un update panel.
<iframe frameborder="0" id="demoFrame" marginheight="0"         marginwidth="0" scrolling="no" src="Pagina1.aspx"> </iframe> Al clicar el botón se aplica un bucle que aumenta el tamaño de la página.

Muy importante este ejemplo solo funciona con páginas dentro del mismo Dominio como muy bien lo explican en el primer link de Microsoft.

Si queréis bajaros el proyecto lo podéis hacer desde este link. http://lonetcamp.com/Community/files/folders/art/entry54.aspx

Saludos a Todos :-) 

October Conference 2007

Los amigos de Málaga .NET User Group han abierto el registro gratuito para su evento de Octubre(15 y 16 de octubre 2007 - Malaga, Spain).

Según sus propias palabras el evento es:

La conferencia va a cubrir un amplio rango de temas, y las ponencias estarán disponibles tanto en español como en inglés. Expertos de todo el mundo van a participar durante los dos días que durará el evento. Será tu oportunidad para interactuar con tus compañeros de profesión y charlar con los ponentes durante este evento relajado.

Los ponentes son de renombre internacional como:

  • Near Ford, Thoughtworks
  • Michael Li, InfoCan Management
  • Chad Hower, Woo-hoo
  • Dino Esposito, Solid Quality Leaning
  • Hadi Hariri, Atozed Software
  • Octavio Hernandez, Plain Concepts
  • Guillermo Som, Solid Quality Learning
  • Martin Luis Lopez, Adesis NetLife
  • José Manuel Alarcón Aguín, Krasis
  • Unai Zorrilla Castro, Plain Concepts

 Como podéis comprobar es la crem de la crem y totalmente gratis.

Para mas información http://www.octoberconference.net

Para registrarse http://msevents.microsoft.com/CUI/EventDetail.aspx?culture=en-US&EventID=1032348903

Espero que nadie falte Wink

Nuevo vecino en la Comunidad !!!

En realidad no soy tan nuevo Wink pero hasta ahora no me había planteado la posibilidad de tener mi propio rinconcito.

 Pero bueno, todas las aportaciones al conocimiento común espero que sean bien acogidas por todos.

Para empezar y para que podáis conocerme un poquito mejor os dejo un par de links a unos artículos que publiqué en elguille y que espero que aún sean útiles para todos:

  • Código de Barras

    Creación e Impresión de Código de Barras utilizando Fuentes Personalizadas ( True Type )

Bueno espero veros pronto a todos por este sitio.