java – Wicket:如何在textarea的onkeyup上更改标签的文本?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java – Wicket:如何在textarea的onkeyup上更改标签的文本?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2134字,纯文字阅读大概需要4分钟。
内容图文
![java – Wicket:如何在textarea的onkeyup上更改标签的文本?](/upload/InfoBanner/zyjiaocheng/790/67798761f73f4e3eb1b16ba0e0522430.jpg)
如何在textarea的onkeyup上更改标签的文本?我试过这个但不起作用:
Form form;
TextArea ta;
MyLabel resultDiv;
/**
* Constructor that is invoked when page is invoked without a session.
*/
public HomePage(final PageParameters parameters) {
this.form = new Form("form");
this.ta = new TextArea("text");
this.resultDiv = new MyLabel("result");
this.ta.add( new AjaxEventBehavior( "onKeyUp" ) {
protected void onEvent( AjaxRequestTarget target ) {
System.out.println( "Ajax!" );
resultDiv.setText("Foobar");
resultDiv.renderComponent();
}
} );
form.add( ta );
form.add( resultDiv );
add( form );
}// const
public class MyLabel extends Label {
private String text = "original";
public String getText() { return text; }
public void setText( String text ) { this.text = text; }
public MyLabel( String id ) {
super( id );
this.setModel( new PropertyModel(this,"text") );
}
}
解
莱奥尼德几乎就在那里.结果代码是:
Form form;
TextArea ta;
Label resultDiv = new Label( "result", new PropertyModel(this,"labelText") ){
{ setOutputMarkupId( true ); }
};
private String labelText = "original";
/**
* Constructor that is invoked when page is invoked without a session.
*/
public HomePage(final PageParameters parameters) {
this.form = new Form("form");
this.ta = new TextArea("text");
this.ta.add( new AjaxEventBehavior( "onKeyUp" ) {
protected void onEvent( AjaxRequestTarget target ) {
System.out.println( "Ajax!" );
labelText = "Foobar"; // Doesn't even need get/set, which is great.
target.addComponent( resultDiv );
//resultDiv.renderComponent(); // WRONG!!
}
} );
form.add( ta );
form.add( resultDiv );
add( form );
}// const
最后一个问题是我对添加renderComponent()的不良直觉 – 由于某种原因,保持标签不变.
顺便说一句,结果将很快服务于JTexy lightweight markup language沙箱.
感谢帮助!
解决方法:
如果要在AJAX事件后更新组件,则必须执行以下两项操作:
>可更新组件必须设置标志setOutputMarkupId == true;
>您必须将此组件添加到目标onEvent方法
this.resultDiv.setMarkupOutputId(true);
protected void onEvent( AjaxRequestTarget target ) {
System.out.println( "Ajax!" );
//resultDiv.setModel( );
resultDiv.setText("Foobar");
resultDiv.renderComponent();
target.add(resultDiv);
}
PS我不了解你代码的很多部分.
内容总结
以上是互联网集市为您收集整理的java – Wicket:如何在textarea的onkeyup上更改标签的文本?全部内容,希望文章能够帮你解决java – Wicket:如何在textarea的onkeyup上更改标签的文本?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。