Yep, your right it is not a parent. I learned that in my journey trying to figure out this issue. Just part of the page that you can stick out there by itself for a minute. Understanding this concept does help a great deal when using cfwindow.
Wish I would have grasped that at the very beginning. On Mon, Feb 2, 2009 at 8:00 AM, Andrew Scott <andrew.sc...@aegeon.com.au>wrote: > > Can you please explain to me why you call it the parent page? > > From what I can tell the cfwindow is called from the page request called, > if > that is the case there is no such thing as a parent page!! > > Even though it looks like a window and behaves like a window, doesnt make > it > a child in the context of a window in a browser. If you do a views ource, > you will notice that it is just div containers in the page. > > What that means is that you dont reference it with parent.functionName() as > you would with normal JS and browser windows. Just dont confuse yourself > more by calling it a parent. > > Parent and such is more of a reference for JS when you open a window from > within JS with the document.open(). > > Regards, > Andrew Scott > > > > On Sun, Feb 1, 2009 at 1:21 PM, Nando <d.na...@gmail.com> wrote: > > > > > I also had to tackle this problem in the particular context of the data > in > > a > > cfgrid. I didn't need to refresh the whole page, but the problem seem to > be > > that the grid would refresh before the changes made in the cfwindow > fields > > were persisted. Perhaps the same is happening in your case? > > > > The solution I came up with was to use cfajaxproxy to set up means to > > persist data via a javascript and submit the form to a javascript method > on > > the parent page. That way, the steps can be sequenced. > > > > Here's some sample code, copied from a working implementation that you > can > > probably adapt. > > > > // set up the proxy and import the ext library needed to build the > buttons > > i > > use ... > > > > <cfajaxproxy cfc="remote.RemoteGateway" jsclassname="dataproxy"> > > <script type="text/javascript" > > src="/CFIDE/scripts/ajax/ext/package/toolbar/toolbar.js"></script> > > > > <script type="text/javascript"> > > var dataproxy = new dataproxy(); > > > > // set up grid, adding buttons with handlers > > > > function initGrid() { > > grid = ColdFusion.Grid.getGridObject("RecipeHerbGrid"); > > var gridFoot = grid.getView().getFooterPanel(true); > > var bbar = new Ext.Toolbar(gridFoot); > > bbar.addButton({ > > cls:"x-btn-text-icon", > > icon:"icons/add.png", > > handler:onAdd > > }); > > bbar.addSeparator(); > > bbar.addButton({ > > text:"Delete Selected", > > cls:"x-btn-text-icon", > > icon:"icons/delete.png", > > handler:onDelete > > }); > > } > > > > // this method is fired when the Add button is clicked, opening the add > > recipe window > > > > function onAdd(button,event){ > > ColdFusion.Window.show('addRecipeHerbWindow'); > > } > > > > // when the Save button is clicked in the form in the add recipe window, > it > > calls this function > > // NOTE: the button in the form is not a type="submit" - it's a > > type="button" - this is important > > // this function acts as a proxy to the addRecipeHerb() method in the > > remote.RemoteGateway CFC > > // so in effect, the form submission is persisted, then the window is > > hidden, > > // and then the grid is refreshed. You could refresh the whole page if > > needed at this point > > > > function addRecipeHerb() { > > var f = document.frmRecipeHerb; > > dataproxy.addNewRecipeHerb ( > > f.recipeVariationId.value, > > f.herbId.value, > > f.weight.value > > ); > > ColdFusion.Window.hide('addRecipeHerbWindow'); > > ColdFusion.Grid.refresh('RecipeHerbGrid', true); > > } > > > > // here are the functions for the delete button to make it complete > > > > var grid = ColdFusion.Grid.getGridObject("RecipeHerbGrid"); > > var record = grid.getSelections(); > > // remember, CF makes column names to all UPPERCASE, so dont forget to > > do that > > dataproxy.deleteRecipeHerb(record[0].data.RECIPEHERBID); > > } > > ColdFusion.Window.hide('deleteRecipeHerbWin'); > > ColdFusion.Grid.refresh('RecipeHerbGrid', true); > > } > > > > function editRecipeHerb() { > > var grid = ColdFusion.Grid.getGridObject("RecipeHerbGrid"); > > var record = grid.getSelections(); > > dataproxy.editRecipeHerb ( > > record[0].data.RECIPEHERBID, > > record[0].data.THEWEIGHT, > > record[0].data.PINYIN > > ); > > ColdFusion.Grid.refresh('RecipeHerbGrid', true); > > } > > > > // and the cfwindow code block. Note again that the submit buttons are > > type="button" > > > > <cfwindow closable="true" modal="true" name="addRecipeHerbWindow" > > title="Add > > Recipe Herb" width="250" height="140" x="300" y="250"> > > <form name="frmRecipeHerb"> > > <input type="hidden" name="recipeVariationId" > > value="#qMainRecipeVariation.recipeVariationId#"> > > <table cellpadding="0" cellspacing="0" border="0"> > > <tr> > > <td class="label">Pin yin</td> > > <td> > > <select name="herbId" style="width:150px;"> > > <cfloop query="qPinYinList"> > > <option class="l1" > > value="#herbId#">#pinYin#</option></cfloop> > > </select> > > </td> > > </tr> > > <tr> > > <td class="label">Gewicht</td> > > <td><input type="text" class="text" name="weight" value="" > > style="width:50px;" /></td> > > </tr> > > </table> > > <!--- instead of type=submit, this uses type=button ---> > > <div align="right" style="margin:10px 0 0 0;"><input type="button" > > class="submit" value="Save" onclick="javascript:addRecipeHerb();" > /></div> > > </form> > > </cfwindow> > > > > <cfwindow width="250" height="140" x="300" y="250" > > name="deleteRecipeHerbWin" modal="true" resizable="false" title="Delete > > Recipe Herb?"> > > <div style="margin-left:5px;margin-top:5px;"> > > Delete the selected herb from the recipe? > > <div align="center" style="padding-top:6px;"> > > <input type="button" value="Yes" > onClick="deleteRecipeHerb('yes')"> > > <input type="button" value="No" onClick="deleteRecipeHerb('no')"> > > </div> > > </cfwindow> > > > > It took me quite awhile over the last few days to get this to work ... so > I > > hope it helps you. > > > > Nando > > > > On Sat, Jan 31, 2009 at 2:53 AM, David Mineer <min...@gmail.com> wrote: > > > > > > > > I am using a cfwindow that opens and displays some ajax based cfselects > > and > > > a 2 date selection input fields. > > > > > > This all works except when I close the window, the parent page does not > > > refresh the values. The page seems to refresh and I know the values > have > > > been correctly set, but they do not show up. I am sending a > > > document.location.reload() in the onclick of the submit button as well > as > > > the coldfusion.window.hide. > > > > > > I have seen a few posts on exactly this same thing but the answers are > > not > > > clear to me. I have toyed with coldfusion.navigate and other > recommended > > > solutions but nothing is working. > > > > > > Does anyone have any suggestions? > > > > > > > > > -- > > > David Mineer Jr > > > --------------------- > > > The critical ingredient is getting off your > > > butt and doing something. It's as simple > > > as that. A lot of people have ideas, but > > > there are few who decide to do > > > something about them now. Not > > > tomorrow. Not next week. But today. > > > The true entrepreneur is a doer. > > > > > > > > > > > > > > > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~| Adobe® ColdFusion® 8 software 8 is the most important and dramatic release to date Get the Free Trial http://ad.doubleclick.net/clk;207172674;29440083;f Archive: http://www.houseoffusion.com/groups/cf-talk/message.cfm/messageid:318987 Subscription: http://www.houseoffusion.com/groups/cf-talk/subscribe.cfm Unsubscribe: http://www.houseoffusion.com/cf_lists/unsubscribe.cfm?user=89.70.4