2017-05-30 55 views
0

我想將焦點設置到特定的組件我回到我的第一頁以後。如何在wicket 7中的responsePage後的文本框中設置焦點?

PageParameters pageParameters = new PageParameters(); 
setResponsePage(new SecondPage(pageParameters) { 
      @Override 
      public void doSelect(Integer ID) {     
       setResponsePage(FirstPage.this); 
       // set focus to spesific component here 

      } 

      @Override 
      public void doCancel() { 
       setResponsePage(FirstPage.this); 
      } 
     }); 

請幫助我..

+0

您不允許從一個頁面到另一個頁面的引用,請使用PageReference代替。 – svenmeier

回答

0

你有一點點的JavaScript添加到您的網頁,搜索FocusOnLoadBehavior:

https://cwiki.apache.org/confluence/display/WICKET/Request+Focus+on+a+Specific+Form+Component

+0

我找不到AbstractBehavior類..我認爲我們不能使用這種方式,因爲它使用舊的檢票器版本.. – Rendy

+0

IIRC他們將其更改爲行爲(這是一個抽象類)。請參閱此處:https://ci.apache.org/projects/wicket/apidocs/1.5.x/org/apache/wicket/behavior/AbstractBehavior.html – RobAu

2

IMO我可以選擇HTML5這一點。在HTML中,所有表單域都有autofocus屬性。

您可以在頁面加載時決定要加載哪個組件。在您的情況下,它是默認的構造函數。有一些標準,並專注於特定的組件,如果你是動態集中組件,否則像下面這樣做。不需要Javascript。

TextField textField = new TextField("name"); 
textField.add(new AttributeModifier("autofocus",""));