0

私はいくつかのコードを持っていて、以前はうまく機能していましたが、今はもう機能しません。GridPanel に表示される一連の結果があり、結果をフィルター処理するためのテキスト フィールドがあります。3 文字以上入力すると、それに応じて表示結果がフィルタリングされます。テキストフィールドには、入力された値に反応するリスナーがあります。何かが入力されると、次のコマンドが起動されます。

grid  = Ext.getCmp('shopGrid');
console.log(grid);
store = grid.getStore();
console.log(store);

if (strLen >= 3) {
    store.filter('NAME', input, true, false);

} else {
    store.clearFilter();
    store.load();
}

何が起こっているのかを確認するために console.log() を追加しました。グリッドをコンソールに表示すると、それはあらゆる種類の要素を持つオブジェクトであり、期待通りです。ただし、それ以上は進まず、「TypeError: Ext.getCmp(...).getStore は関数ではありません」というエラー メッセージで終了します。

以前にこの種のエラー メッセージに遭遇したことがありますが、Javascript の内部動作についての私の理解はかなり限られているため、まだ何を伝えようとしているのかを完全には理解していません。ExtJS 内では、関数 getStore() は GridPanels に対してのみ定義されています。私の問題は、getCmp() が GridPanel ではなく標準オブジェクトを提供することでしょうか? しかし、Javascript 内のオブジェクトのタイプは 1 つだけですよね? とにかく、Ext バージョン 3.4.1 を使用しています。ヘルプやヒントをいただければ幸いです。

4

1 に答える 1

4

に設定gridしたのでExt.getCmp('shopGrid').getView()、実際にviewはグリッド自体ではなく への参照です。を外すgetView()と動作するはずです。

var grid  = Ext.getCmp('shopGrid'),
    store = grid.getStore();
于 2013-10-23T12:26:34.540 に答える