检票口:创建在文本框和标签之间交换的控件



我有一个具有编辑状态和视图状态的面板。我需要一个根据面板状态在文本字段和标签之间切换的控件。例如,在编辑状态下,面板将显示为文本字段,而同一字段将在视图状态中显示为标签。

这与AjaxEditableLabel非常相似,但并不相同。我正在同时将表单中的多个标签更改为文本字段。

除了交换控制权外,我还想继续利用wicket:for.下面是一个建议的标记示例:

<label wicket:for="firstNm"><wicket:message key="firstNm" /></label><br />
<span wicket:id="firstNm"></span>

我希望能够继续将HTML属性添加到文本字段。可以从 onComponentTag 中的 span 标签复制它们。例如:

<span wicket:id="firstNm" maxlength="30"></span>

。可以在编辑模式下呈现以下内容:

<input type="text" maxlength="30" />

我还查看了 visural-wicket 中的 ViewOrEdit 控件,但我认为它不适用于 wicket:for。

您可以使用 Wicket Fragment 容器执行此操作。在标记中分别为inputspan定义两个片段。在 Java 代码中,根据您的条件添加具有不同第二个参数的片段。文本字段和标签应共享相同的模型以显示相同的文本。

最新更新