Yep. public final Component setOutputMarkupPlaceholderTag(final boolean outputTag) { if (outputTag != getFlag(FLAG_PLACEHOLDER)) { if (outputTag) { setOutputMarkupId(true); setFlag(FLAG_PLACEHOLDER, true); } else { setFlag(FLAG_PLACEHOLDER, false); // I think it's better to not setOutputMarkupId to false... // user can do it if we want } } return this; }
But typing an extra line of code will not necessarily kill you;-) Ernesto On Tue, Dec 21, 2010 at 2:32 PM, <mzem...@osc.state.ny.us> wrote: > I think you are correct, calling setOutputMarkupId(true) is not necessary > when calling setOutputMarkupPlaceholderTag(true). If I remember correctly > from looking at the code for setOutputMarkupPlaceholderTag(), this will > call setOutputMarkupId(true) for you. > > > > > From: Duro <develma...@yahoo.com> > To: users@wicket.apache.org > Date: 12/21/2010 08:24 AM > Subject: Re: Visibility setting with Ajax > > > > thanks, setOutputMarkupId(true) is probably not necessary., but adding > the component to target and setOutputMarkupPlaceholderTag(true) is. > Now i tried to mak eit work even better and removed the panels from the > site. i want to add them just on time, when the user request it. so site > looks now like this: > > wicket:extend> > <div align="center" style="background-color:red;padding:20px"> > <h2>Epubs upload</h2> > <form wicket:id="form"> > <div style="background-color:#304050"> > <span wicket:id="panel"/> > <a href="#" wicket:id="addLink">Add next file</a> > <br/> > <input wicket:id="submitButton" type="submit" value="Datei(en) laden"/> > </div> > <div wicket:id="feedback" class="error" style="background-color:yellow"/> > </form> > </div> > </wicket:extend> > > > and i try to create the panel dynamically: > > public void onClick(AjaxRequestTarget target) { > panel.setOutputMarkupPlaceholderTag(true); > target.addComponent(panel); > panel.add(new UploadFilePanel("filePanel")); > > the markup of UploadFilePanel: > > <wicket:panel> > <table style="padding-bottom:5px"> > <tr> > <td width="180px">Typ</td> > <td><select wicket:id="type" /></td> > <td>Titel</td> > <td><input type="text" wicket:id="title" /></td> > </tr> > <tr> > <td>Jahr</td> > <td><input type="text" wicket:id="year" /></td> > <td>Ausgabe Nummer</td> > <td><input type="text" wicket:id="issueNumber" /></td> > </tr> > <tr> > <td>Datei</td> > <td><input wicket:id="fileUploadField" type="file" /></td> > <td colspan="2" valign="bottom">Ich bin Inhaber > des Mediens<input type="checkbox" wicket:id="ownerCheckbox"/></td> > </tr> > </table> > </wicket:panel> > > this all end in the error: > > WicketMessage: The component(s) below failed to render. A common problem > is that you have added a component in code but forgot to reference it in > the markup (thus the component will never be rendered). > > 1. [MarkupContainer [Component id = panelX]] > 2. [MarkupContainer [Component id = type]] > 3. [MarkupContainer [Component id = title]] > 4. [MarkupContainer [Component id = year]] > 5. [MarkupContainer [Component id = issueNumber]] > 6. [MarkupContainer [Component id = fileUploadField]] > 7. [MarkupContainer [Component id = ownerCheckbox]] > > i understand that i didnt declare the things in the markup, but thats > what i want (create them not at the start, but never or later, when the > user clicks on the link). So what is needed to create the > UploadFilePanel dynamically? > thanks for help > > >> 1-Put >> >> uploadPanel2.setOutputMarkupId(true); >> uploadPanel2.setOutputMarkupPlaceholderTag(true); >> uploadPanel2.setVisible(false); >> >> when you create the panel. >> >> 2- on >> >> public void onClick(AjaxRequestTarget target) { >> uploadPanel2.setVisible(true); >> target.addComponent(uploadPanel2); >> } >> >> Ernesto >> >> On Tue, Dec 21, 2010 at 1:38 PM, Juraj Petko<juraj.pe...@gmail.com> > wrote: >>> Hi, i have 3 panels on my page: >>> wicket:extend> >>> <div align="center" style="background-color:red;padding:20px"> >>> <h2>Epubs upload</h2> >>> <form wicket:id="form"> >>> <div style="background-color:#304050"> >>> <span wicket:id="uploadPanel1"/> >>> <span wicket:id="uploadPanel2"/> >>> <span wicket:id="uploadPanel3"/> >>> <a href="#" wicket:id="addLink">Add next file</a> >>> <br/> >>> <input wicket:id="submitButton" type="submit" value="Datei(en) laden"/> >>> </div> >>> <div wicket:id="feedback" class="error" > style="background-color:yellow"/> >>> </form> >>> </div> >>> </wicket:extend> >>> >>> and only after clicking addLink, the user should see the uploadPanel2. > So i >>> coded this: >>> >>> add(new AjaxFallbackLink("addLink") { >>> private static final long serialVersionUID = >>> -4427831923318024979L; >>> >>> @Override >>> public void onClick(AjaxRequestTarget target) { >>> uploadPanel2.setVisible(true); >>> } >>> }); >>> >>> When i debug, the method onClick() is really entered and >>> uploadPanel2.setVisible(true) is executed, but the panel is still not >>> visible. What else i have to do? >>> thanks! >>> >>> >>> --------------------------------------------------------------------- >>> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org >>> For additional commands, e-mail: users-h...@wicket.apache.org >>> >>> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org >> For additional commands, e-mail: users-h...@wicket.apache.org >> > > __________________________________________________ > Do You Yahoo!? > Sie sind Spam leid? Yahoo! Mail verfügt über einen herausragenden Schutz > gegen Massenmails. > http://mail.yahoo.com > > --------------------------------------------------------------------- > To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org > For additional commands, e-mail: users-h...@wicket.apache.org > > > > > > > Notice: This communication, including any attachments, is intended solely > for the use of the individual or entity to which it is addressed. This > communication may contain information that is protected from disclosure > under State and/or Federal law. Please notify the sender immediately if > you have received this communication in error and delete this email from > your system. If you are not the intended recipient, you are requested not > to disclose, copy, distribute or take any action in reliance on the > contents of this information. --------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org For additional commands, e-mail: users-h...@wicket.apache.org