我找不到一种允许我从组件或更好的一个特定属性中提取属性的方法。这是一个例子:
我将第二个文本区域的高度设置为我从第一个文本区域获得的高度。
public class HomePage extends WebPage {
TextArea t = new TextArea("m", "hey");;
TextArea t2 = new TextArea("m2",
"this is a label with label ones attributes added");
public HomePage() {
add(t.add(new AttributeModifier("height", "100;")));
add(t2.add(HERE ADD THE ATTRIBUE HEIGHT FROM LABEL);
}
答案 0 :(得分:0)
我的解决方案使用JavaScript进行高度修改。 t1是通过打字增长的那个,t2是正在调整高度的那个。我觉得干净又好看。
private TextArea textarea1() {
TextArea t1 = new TextArea("t1", Model.of("t1"));
final String js = "document.getElementById('%s').style.height = document.getElementById('%s').style.height;";
t1.add(new OnChangeAjaxBehavior() {
@Override
protected void onUpdate(AjaxRequestTarget target) {
target.appendJavaScript(String.format(js, textarea2.getMarkupId(), textarea1.getMarkupId()));
}
});
t1.setOutputMarkupId(true);
return t1;
}
private TextArea textarea2() {
TextArea t2 = new TextArea("t2", Model.of("t2"));
t2.setOutputMarkupId(true);
return t2;
}
在您的页面/面板类的早期声明私有字段并为它们分配两个textarea的
private Textarea textarea1;
private Textarea textarea2;
在ctor:
textarea1 = textarea1();
textarea2 = textarea2();
add(textarea1);
add(textarea2);