用Tomahawk的<h:dataScroller>時,如果在表格中增加了操作控件,點擊后會對表的行數產生影響時,就需要在backing bean的action method里對表格進行翻頁。例如,表格的每一行有個“刪除”按鈕,在該按鈕的監聽函數里對數據庫進行刪除操作后需要更新表格內容,這時候如果刪除的正好是最后一頁的最后一條記錄,則更新表格的dataModel后,表格仍停留在最后一頁,但沒有顯示任何記錄,需要手動翻到前一頁才能看到其他記錄,行為十分怪異。因此需要在監聽函數里判斷當前刪除的時候為最后一頁的最后一條記錄,如果是的話就通過程序翻到前一頁。
具體實現如下:
在表格所在頁面的backing bean里增加一個HtmlDataScroller成員變量,并設置它的setter和getter,再通過頁面上的dataScroller控件中的binding屬性把該控件與成員變量聯系起來,然后在按鈕監聽處理中對該控件進行操作。要把表格定位在某一頁,需要用到HtmlDataScroller的getUIData().setFirst()方法。

public?class?PageBean
{
??private?HtmlDataScroller?scroller?=?null;

??public?HtmlDataScroller?getScroller()
{
????return?scroller;
??}

??public?void?setScroller(HtmlDataScroller?scroller)
{
????this.scroller?=?scroller;
??}

??public?String?buttonListionMethod()
{
????
????scroller.getUIData().setFirst(0);
????
??}
具體實現如下:
在表格所在頁面的backing bean里增加一個HtmlDataScroller成員變量,并設置它的setter和getter,再通過頁面上的dataScroller控件中的binding屬性把該控件與成員變量聯系起來,然后在按鈕監聽處理中對該控件進行操作。要把表格定位在某一頁,需要用到HtmlDataScroller的getUIData().setFirst()方法。






















