Wicket: отображение кнопки во время ответа Ajax - PullRequest
2 голосов
/ 05 августа 2010

У меня проблема с отображением кнопки на странице.Есть две кнопки, называемые «Загрузить» и «Сохранить».Вначале видна кнопка «Загрузить», в то время как кнопка «Сохранить» имеет .setVisible (false).

…
<tr>
<td width="35%" align="right">
            <input type="submit" wicket:id="createUploadButton" value="Upload" class="ui-button ui-button-text-only ui-widget ui-state-default ui-corner-all"/>
        </td>
        <td width="30%" align="right">

        </td>
        <td width="35%" align="left">
            <input type="submit" wicket:id="createCancelButton" value="Cancel" class="ui-button ui-button-text-only ui-widget ui-state-default ui-corner-all"/> 
        </td>
</tr>

Во время AjaxRequest of Upload кнопку необходимо показать кнопку «Сохранить» и скрыть кнопку загрузкино есть ошибка.Фрагмент кода показан ниже:

AjaxButton createSaveButton=new IndicatingAjaxButton("createSaveButton"){

    private static final long serialVersionUID = 1L;

    @Override
    protected void onSubmit(AjaxRequestTarget target, Form<?> form) {
                // TODO Auto-generated method stub
            }
    };
    createSaveButton.setVisible(uploaded);
    createSaveButton.setOutputMarkupId(true);
    form.add(createSaveButton);

AjaxButton createUploadButton=new IndicatingAjaxButton("createUploadButton"){

    private static final long serialVersionUID = 1L;

    @Override
    protected void onSubmit(AjaxRequestTarget target, Form<?> form) {

        …
        createUploadButton.setVisible(false);
        createSaveButton.setVisible(true);
        target.addComponent(createUploadButton);
        target.addComponent(createSaveButton);
}
createUploadButton.setOutputMarkupId(true);
form.add(createUploadButton);

Кто-нибудь знает, где проблема?

Спасибо!Sonja

1 Ответ

4 голосов
/ 05 августа 2010

Вам необходимо использовать setOutputMarkupPlacholderTag setOutputMarkupPlaceholderTag. См:

createSaveButton.setVisible(uploaded);
createSaveButton.setOutputMarkupId(true);

// Add This line
createSaveButton.setOutputMarkupPlaceholderTag(true);
form.add(createSaveButton);

Поместить в HTML скрытый элемент, который можно заменить на кнопку "true".

...