Dan asked the following question about frames and Model-Glue:
Basically, my question is about using frames within my application. I basically want to use a frame for my avigation that never gets reloaded and another frame below it for the page displays. The reason I am using a frame for the navigation is that I am also trying to implement chat functionality within my ColdFusion app. The chat core needs to sit in a page that doesn’t get refreshed, thus my need for a frame within my application. How would I go about in setting up this layout with my application using the Model-Glue framework?
The short answer to this is that you don’t do anything special for frames when it comes to Model-Glue. What is interesting is that a very similar issue came up last week. I was doing training for a group of developers using Model-Glue and Spry. When it came time to talk about the URL to use for Spry’s AJAX requests, I made the point that requesting XML (or loading a frame) is no different than any other Model-Glue request.
So to take your frames request and show a practical example, let’s first look at a simple example of framed code:
<frameset cols="200,*" bordercolor="#333333" framespacing="2" border="5">
<frame src="navserver.cfm" name="frame_nav" resize="yes" marginwidth="0" marginheight="0" framespacing="0" title="Navigation">
<frame src="right.cfm?target=" name="frame_detail" id="frame_detail" resize="yes" marginwidth="0" marginheight="0" framespacing="0" title="Main window">
</frameset>
In case folks are curious – these frames come from the ColdFusion administrator (the only site I know that actually uses frames). The code we want to focus on is the two frame tags. Note they both use a SRC attribute which points to a URL. So in a Model-Glue site, the frames could look like so:
<frameset>
<frame src="index.cfm?event=page.leftframe">
<frame src="index.cfm?event=page.rightframe">
</frameset>
So to make this absolutely crystal clear – there is nothing special about using frames or AJAX requests in Model-Glue. Just remember your URL format (index.cfm?event=X) and use it for your links.
p.s. Don’t forget Model-Glue has a set of predefined variables in the viewState, including one for index.cfm?event=. So technically, to make a link to event X, you would normally use this:
<cfoutput>
<a href="#viewState.getValue("myself")#X">X</a>
</cfoutput>
As a hint – I recommend copying out that myself value to a variable if you will have a lot of links on a page (like your display template).
Add to Del.icio.us | Digg | Reddit | Furl
Raymond Camden, ray@camdenfamily.com
http://ray.camdenfamily.com
Raymond Camden is Vice President of Technology for roundpeg, Inc. A long
time ColdFusion user, Raymond has worked on numerous ColdFusion books
and is the creator of many of the most popular ColdFusion community web
sites. He is an Adobe Community Expert, user group manager, and the
proud father of three little bundles of joy.