First of all apologies to the list... I've been so busy lately that i haven't had time to help and reply to many past emails...
I'll eventually try your code, but till that happens here's some thoughts... -) i'd try your suggestion about removing the node completely from the dom. Something like: myDialogNode.parentNode.removeChild(myDialogNode) -) we need to fix Dialog's usage of ids... it currently has the exact problem you described... Can you log a report at http://tacoscomponents.jot.com/BugReporter ? BTW, from 4.0.1 and on, you can use updateComponents="dialogEditItem" or updateComponents="literal:dialogEditItem" instead of updateComponents="ognl:{'dialogEditItem'}" That is a comma-separated string of components to update Stephanos Piperoglou wrote: > > I've been wrestling with the Dialog component all day with no useful > results yet... > > I have a For component iterating over some beans and I want an "Edit" > button that pops up a dialog to edit the properties of that bean and > then save and close the dialog. All the examples of Dialog I've seen > on the site show the dialog initially visible, while I want it hidden, > then shown and updated only when I click the "Edit" button. > > The page loads fine with the dialog invisible, and when I first click > on an edit link the dialog is displayed and the bean data loaded. > Clicking the AjaxSubmit button in the dialog saves the data and hides > the dialog; so far so good. However, if I now click on another edit > button in the For loop I get the same dialog as I got before instead > of getting a dialog with the new bean data in the fields. > > More worryingly, bringing up a @DebugConsole shows me that the edit > link DOES return the dialog with the second bean loaded, but I still > get shown the initial dialog. I used Firefox's Web Developer > Extension's "View Generated Source" feature and saw that the new > dialog just gets appended to the document tree instead of replacing > the previous one; it seems I get two elements with the same id now and > dojo/tacos is showing the first one it finds, i.e. the initial one. > > Is this a bug? Is there some way around it? When I submit a dialog, > how can I get rid of it completely from the document tree? Am I going > about this the right way? > > My code, in a pinch: > > <tr jwcid="@For" source="ognl:items" > value="ognl:thisItem" index="ognl:thisItemIndex" element="tr"> > ... > <span jwcid="@tacos:AjaxDirectLink" > listener="listener:doEditItem" > parameters="ognl:thisItemIndex" > updateComponents="ognl:{'dialogEditItem'}"> > <img src="images/edit.gif"/> > </span> > ... > </tr> > > and further down: > > <div jwcid="[EMAIL PROTECTED]:Dialog" > hidden="ognl:dialogEditItemHidden"> > <div jwcid="@If" condition="ognl:editItemIndex != -1"> > <form jwcid="@tacos:AjaxForm" listener="listener:doSaveItem" > updateComponents="ognl:{'dialogEditItem'}" > > <input jwcid="@TextField" > value="ognl:items[editItemIndex].instrumentId" /> > <input jwcid="@tacos:AjaxSubmit" value="Save Changes" /> > </form> > </div> > </div> > > In my page class: > > @Persist > @InitialValue("ognl:-1") > *public* *abstract* *int* getEditItemIndex(); > *public* *abstract* *void* setEditItemIndex(*int* index); > > @Persist > @InitialValue("ognl:true") > *public* *abstract* *boolean* getDialogEditItemHidden(); > *public* *abstract* *void* setDialogEditItemHidden(*boolean* > hidden); > > *public* *void* doEditItem(*int* index) { > setEditItemIndex(index); > ((Dialog)getComponent("dialogEditItem")).show(); > } > > *public* *void* doSaveItem() { > setEditItemIndex(-1); > ((Dialog)getComponent("dialogEditItem")).hide(); > } > > --- > > This e-mail may contain confidential and/or privileged information. If > you > are not the intended recipient (or have received this e-mail in error) > please notify the sender immediately and destroy this e-mail. Any > unauthorized copying, disclosure or distribution of the material in this > e-mail is strictly forbidden. > ------------------------------------------------------------------------ > > ------------------------------------------------------------------------- > Take Surveys. Earn Cash. Influence the Future of IT > Join SourceForge.net's Techsay panel and you'll get the chance to share your > opinions on IT & business topics through brief surveys - and earn cash > http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV > ------------------------------------------------------------------------ > > _______________________________________________ > Tacos-devel mailing list > Tacos-devel@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/tacos-devel > -- Andreas Andreou - [EMAIL PROTECTED] - http://andyhot.di.uoa.gr Tapestry / Tacos developer Open Source / J2EE Consulting ------------------------------------------------------------------------- Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT & business topics through brief surveys - and earn cash http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV _______________________________________________ Tacos-devel mailing list Tacos-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/tacos-devel