2011-08-23 114 views
0

我是GWT的新手,我想用超鏈接將用戶重定向到另一個表單。與gwt的超鏈接

我的問題是,創建超鏈接很容易,但我該如何使用它們? addClickListener似乎被棄用,有沒有其他的方式來解決這個問題?

更新1 我已經實現了超鏈接的代碼如下:

Hyperlink link0 = new Hyperlink("Show Boxes","showbox"); 
    History.addValueChangeHandler(this); 
    History.fireCurrentHistoryState(); 
    public void onValueChange(ValueChangeEvent<String> event) { 
    String eventValue=event.getValue(); 
    if(eventValue.equals("showbox")){ 
    showBox(); 
    } 
} 

有了這個,我看到對應於一個超鏈接的形式是可見的,但這種形式不是封閉的,另一個是沒有被當我點擊另一個超鏈接時打開。 我正在使用DockPanel在東方向顯示窗體。所有超鏈接的表單只是一個在另一個之下顯示。

任何意見/建議相同?

感謝, 巴維亞

回答

0

使用Anchor.addClickHandler()方法!

Anchor a = new Anchor("text"); 
a.addClickHandler(new ClickHandler(){ 
    // etc 
}); 
0

如果另一種形式是你的GWT應用程序中,那麼你應該考慮使用Hyperlink。在構造函數中,當鏈接被點擊時,您提供了一個歷史令牌,該令牌被推送到​​對象。您只需處理歷史記號已更改的事件即可。它將導航事件從你的邏輯中分離出來。這也會讓您的應用程序知道後退,並允許用戶將書籤保存到特定狀態(在您的案例中爲表格)。 Anchor更多用於外部鏈接。

請參閱Coding Basics - History中描述的內容。

0

首先,你需要創建一個HyperLink具有歷史象徵:

Hyperlink link = new Hyperlink("link to foo", "foo"); 

在上面的例子中,「富」是歷史的象徵。

那麼你應該在History對象註冊您的值更改處理,像

History.addValueChangeHandler(myValueChangeHandler); 

在你的價值變化的處理程序,您需要使用event.getValue()當前標記閱讀。

class MyValueChangeHandler implements ValueChangeHandler<String>() { 
     public void onValueChange(ValueChangeEvent<String> event) { 
     //get the new value of history token 
     //clicking on above example link will return "foo" here 
     String historyToken = event.getValue(); 
     } 
} 

歷史令牌的價值是什麼意思是由您的應用程序決定。例如,您可以在歷史記號與應該呈現的視圖之間維護一個簡單的地圖。在更復雜的應用程序中,您可以將更多細節編碼到令牌中 - 例如應顯示的表單的初始狀態。