- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 AjaxEditableLabel
AjaxEditableLabel<String> task = new AjaxEditableLabel<String>("task", new PropertyModel<String>(getModel(), "task"));
现在我要做的是在某些情况下此 AjaxEditableLabel
将呈现为 TextField
。默认情况下,它呈现为 Label
。如果模型 String
任务为空或空白,则 AjaxEditableLabel
将是 TextField
否则它将是 Label
。
这可能吗?
谢谢。
编辑:
AjaxEditableLabel<String> task = new AjaxEditableLabel<String>("task", new PropertyModel<String>(getModel(), "task")) {
private static final long serialVersionUID = 40L;
private TextField<String> editor;
protected FormComponent<String> newEditor(MarkupContainer parent, String componentId, IModel<String> model) {
editor = (TextField<String>) super.newEditor(parent, componentId, model);
Object modelObject = getDefaultModelObject();
if (modelObject == null || "".equals(modelObject)) {
editor.setVisible(true);
} else {
editor.setVisible(false);
}
return editor;
}
protected WebComponent newLabel(MarkupContainer parent, String componentId, IModel<String> model) {
Label label = (Label) super.newLabel(parent, componentId, model);
if (editor.isVisible()) {
label.setVisible(false);
}
return label;
}
};
最佳答案
如果您查看 AjaxEditableLabel
,它有两种用于初始化编辑器/标签的方法:newEditor
和 newLabel
。在 newEditor
方法中,它默认将编辑器设置为不可见。覆盖这两个方法并添加自定义逻辑以根据模型值显示组件应该可以满足您的要求。
关于java - 如何使 AjaxEditableLabel 显示 TextField?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6303474/
我已经使用 AjaxEditableLabel 显示了 Date 对象中的日期,但是当它以格式显示时,就像这样“08-08-07 00:00”。我可以在标签中添加一些内容,以便它以不同的方式呈现其对象
使用 ajaxEditableLabel 时,我在为 Wicket 口中的 double 添加输入验证时遇到问题。 这是我的代码:(项目是 ListView 中的列表项目) item.add(new
我有一个 AjaxEditableLabel AjaxEditableLabel task = new AjaxEditableLabel("task", new PropertyModel(getM
起初我想说,虽然 RequiredFieldValidator 在 .NET 中使用,但我将这个术语用于 wicket,因为我想表示一个标签(颜色:红色和文本:*),当编辑器在 AjaxEditabl
我搜索了很多这个问题,但没有解释解释我在搜索什么 我有一个像我最后发布的类(class)。简而言之:PatternValidation 的行为不同于手动验证。 例如:AjaxEditableLabel
我是一名优秀的程序员,十分优秀!