div with a is set ==> div with the ID attribute set

On Tue, Dec 21, 2010 at 2:36 PM, Ernesto Reinaldo Barreiro
<reier...@gmail.com> wrote:
> panel.setOutputMarkupPlaceholderTag(true); should be done on panel
> creation: this is needed to tell wicket that even when the component
> is not visible it should render an empty div with a is set, so that it
> can be later used to plugin the panel contents via AJAX when you do
> setVisible(true). So, putting that on the onClick will not help you (I
> guess:-).
>
> Ernesto
>
> On Tue, Dec 21, 2010 at 2:23 PM, Duro <develma...@yahoo.com> wrote:
>> 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
>>
>>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
For additional commands, e-mail: users-h...@wicket.apache.org

Reply via email to