Wicket:渲染/刷新RepeatingView而没有html标签

时间:2018-10-10 01:49:21

标签: java wicket

所以我在重复视图中有FormControl,并且将重复视图的html设置为Wicket:container

我正在尝试刷新formControl,但是因为我在输出中剥离了wicket标签 它给出了JS错误。

我知道wicket:容器无法刷新。但我无法刷新其中的控件。我尝试设置

control.setOutputMarkupPlaceholderTag(true);
control.setOutputMarkupId(true);

HTML是这样的

<form wicket:id="form">
        <wicket:container wicket:id="repeatingContainer">
        </wicket:container>
</form>

这是我得到的错误

Cannot bind a listener for event "change" on element "id1a3" because the element is not in the DOM

我想从输出中删除repeatingContainer html标记,使其遵循引导程序表单布局。

更新: 这段代码在RepeaterView内部

<wicket:panel>
    <div wicket:id="componentGroup">
        <wicket:child/>
    </div>
</wicket:panel>

此代码为儿童

<div wicket:id="labelContainer">
    <label wicket:id="label"></label>
</div>
<div wicket:id="controlContainer" class="control-container">
    <input wicket:id="input"/>
</div>

1 个答案:

答案 0 :(得分:0)

好的,所以我能够解决这个问题。 我将组件div组更新为wicket:container,并将Repeater保留为div。所以现在我可以刷新了。一切正常。

这就是它的样子

<form wicket:id="form">
    <div wicket:id="repeatingContainer">
        <wicket:container wicket:id="componentGroup">
            <div wicket:id="labelContainer">
                <label wicket:id="label"></label>
            </div>
            <div wicket:id="controlContainer" class="control-container">
                <input wicket:id="input"/>
            </div>
        </wicket:container>
    </div>
</form>