2013-04-23 109 views
2

我想更改分頁工具欄的默認頁面爲1的1而不是0的0在沒有record.Plus的情況下我沒有使用存儲代理來請求任何記錄,那麼有什麼辦法可以完成它沒有使用商店代理。根據我的要求,用戶可以使用顯示頁面1的分頁工具欄手動添加行到網格,當行數超過10時,它會移動到第2頁。Extjs 4.1 pagingtoolbar默認頁面

+0

請這分爲兩個不同的問題。一個關於分頁顯示和一個關於添加行時移動到另一個頁面的要求。像這樣將它們集合在一起使它感覺像:「這是我的要求,爲我解決。」 – Reimius 2013-04-23 13:58:19

+0

你應該爲你正在做的事情提供示例代碼。 – Reimius 2013-04-30 18:24:02

回答

2

在Ext中,可以使用您自己的自定義版本來重載像Ext.toolbar.Paging這樣的組件。只需在您的定義中指定一個別名,您就可以像「本機控制」一樣。

爲了確保這種方法可行,我使用一個簡單的數據源建立了一個測試項目,並實現了足夠的替換定義,我可以看到「Ext.toolbar.Paging」.getPagingItems方法被觸發我的自定義定義。

從這一點開始,您可以替換原始方法定義中的代碼,以允許自定義最小值,除了重載「updateInfo」方法以確保數據重新加載期間您不會翻身您的自定義。

除了這兩件事之外,您應該(只需相對較少的努力)就能夠在控件之上實現,以支持根據網格內容動態更改其值。

如果您查看ux.data.PagingStore的文檔,您應該能夠區分使用遠程提供的商店與本地提供的某些數據的區別。

希望這可以幫助你。

代碼示例:

Ext.define(
    "Test.view.testview.TvPageBar", 
    { 
     extend: "Ext.toolbar.Paging", 
     alias: "widget.tvpagebar", 
     title: "Bob", 
     strictInit: function() { 
      "use strict"; 
      console.log("TvPageBar init"); 
     }, 
     getPagingItems: function() { 
      console.log("getPagingItems", this); 
      this.callParent(arguments); 
     }, 
     initComponent: function() { 
      this.strictInit(); 
      this.callParent(arguments); 
     } 
    } 
);