首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Wicket - refresh组件使用AJAX后文档元素

Wicket - refresh组件使用AJAX后文档元素
EN

Stack Overflow用户
提问于 2016-03-14 11:44:39
回答 1查看 695关注 0票数 0

我正在尝试使用AJAX刷新页面上的组件。以下是一些代码:

代码语言:javascript
复制
    private class MyAjaxBehavior extends AbstractDefaultAjaxBehavior {
        private final DataView<Something> dataView;

        private MyAjaxBehavior(DataView<Something> dataView) {
            this.dataView = dataView;
        }

        @Override
        protected void respond(AjaxRequestTarget target) {
            // here I do something with dataView...
            MarkupContainer container = dataView.getParent();
            dataView.setOutputMarkupId(true);
            container.setOutputMarkupId(true);
            dataView.renderComponent();
            container.renderComponent();
            target.addComponent(container);
        }
    }

我可以使用javascript respond() wicketAjaxPost(<callback url>)调用wicketAjaxPost(<callback url>)方法。但我的页面上没什么变化。打开javascript控制台时,我会看到以下错误:junk after document element。当我重新加载页面时,我的更改是可见的,所以这就是AJAX。我做错了什么?我认为这是因为我的HTML无效;那么如何让用户的浏览器忽略验证错误呢?

我用的是Wicket 1.4.22

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-03-14 15:11:51

不要调用#renderComponent(),它将由wicket在将容器呈现到ajax响应中时调用。

从#respond()调用#setOutputMarkupId(true)已经太晚了,组件必须在第一个Ajax请求之前输出它们的markupId。您可以从行为的#onCon图()调用container#setOutputMarkupId(true)。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35986643

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档