2

レコードがない場合に、ページネーション ツールバーのデフォルト ページを 0 の 0 ではなく 1 の 1 に変更したいです。さらに、ストア プロキシを使用してレコードを要求していないため、ストア プロキシを使用せずにそれを達成する方法はありますか。私の要件によると、ユーザーはページ 1 を表示するページネーション ツールバーを使用してグリッドに手動で行を追加でき、行が 10 を超えると 2 ページ目に移動します。

4

1 に答える 1

2

Ext では、Ext.toolbar.Paging のようなコンポーネントを独自のカスタム バージョンでオーバーロードすることができます。定義でエイリアスを指定するだけで、「ネイティブ コントロール」と同じように使用できます。

このアプローチが機能することを確認するために、単純なデータソースを使用してテスト プロジェクトをセットアップし、"Ext.toolbar.Paging".getPagingItems メソッドがカスタム定義で起動されるのを確認できる十分な代替定義を実装しました。

その時点から、元のメソッドの定義内のコードを置き換えて、「updateInfo」メソッドをオーバーロードする機会に加えて、カスタムの最小値を許可して、データの再読み込み中にカスタマイズを実行しないようにすることができます。

これら 2 つのことに加えて、(比較的少ない労力で) コントロールの上に実装して、グリッドの内容に基づいて値を動的に変更できるようにする必要があります。

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);
        }
    }
);
于 2013-05-01T01:12:13.037 に答える