2013-12-19 30 views
0

我有一個簡單的應用程序,其中有一個Tabpanel,其中添加了多個選項卡。每個選項卡將從外部URL獲取數據並顯示數據。如何自動刷新GWT tabtab中的單個選項卡

這些外部URL中的數據每隔30分鐘不斷變化,但URL地址保持不變。

因此,當我單擊各個選項卡而不刷新整個頁面時,刷新的數據在URL中的原始內容更改後在選項卡中不可見。我正在使用iframe在每個選項卡中顯示外部URL的內容。

我的問題在這裏,如何使每個標籤autorefresh(或)點擊標籤標題後重新加載標籤?

我已經經歷了幾個已經發布的stackoverflow問題,但沒有完全幫助。

目前我正在使用http元標記刷新整個瀏覽器每30秒。但問題在於,瀏覽器設置爲第一個選項卡,並且用戶再次必須點擊他選擇的選項卡,這會讓人感到煩惱。

回答

1

您可以將選擇處理程序添加到選項卡面板。並檢查事件中選定的選項卡項目。然後再次將網址設置爲相關的幀。

例如

// Create an empty tab panel 
     TabPanel tabPanel = new TabPanel(); 

     // create contents for tabs of tabpanel 
     final Frame cotent1 = new Frame("http://www.youtube.com/embed/j6cxZp4ii6c?autoplay=true"); 
     final Frame cotent2 = new Frame("http://www.youtube.com/embed/j6cxZp4ii6c?autoplay=true"); 

     // create titles for tabs 
     String tab1Title = "TAB 1"; 
     String tab2Title = "TAB 2"; 

     // create tabs 
     tabPanel.add(cotent1, tab1Title); 
     tabPanel.add(cotent2, tab2Title); 

     // select first tab 
     tabPanel.selectTab(0); 

     // set width if tabpanel 
     tabPanel.setWidth("400"); 

     tabPanel.addSelectionHandler(new SelectionHandler<Integer>() 
     { 
      @Override 
      public void onSelection(SelectionEvent<Integer> event) 
      { 
          if(event.getSelectedItem() == 0) 
          { 
           cotent1.setUrl("http://www.youtube.com/embed/j6cxZp4ii6c?autoplay=true"); 
          } 
          // likewise set the urls to all the content 

      } 
     }); 
+0

我已經張貼了這個問題之前遵循這一點,但在我結束了愚蠢的錯誤是保持tabPanel.selectTab(0);在addSelectionHandler之後。謝謝您的幫助。現在工作很酷。 – kittu

0

我對這個問題的猜測將是,

你必須有一個點擊處理程序的所有選項卡,並在選項卡單擊基本刷新DataProvider您使用的填充數據。這取決於你用什麼方式顯示數據。 您需要刷新需要顯示的數據容器。如果您可以發佈您的代碼,那麼有人可能會更好地使用更合適的解決方案。

此外,您可以在間隔後調用selectTab(int index,boolean fireEvents)而不是刷新瀏覽器。

1

請勿使用URL。只需聽取標籤上的更改並進行必要的操作

yourTabPanel.addSelectionHandler(new SelectionHandler<Integer>() { 
    @Override 
    public void onSelection(SelectionEvent<Integer> event) { 
    if (event.getSelectedItem() == 1) { 
     // do something here // get data for tab1 
    } 
    } 
}); 
相關問題