1

私は Extjs を使用してアプリを作成しました。グリッド レコードをユーザーに表示しています。ここでは livesearch の機能を追加しました。検索フィールドのフィールドにテキストを入力すると、プロパティ名と値に基づいてフィルタリングが非常にうまく行われます。しかし、問題は、検索フィールドが空/空白になったときに検索フィールドからテキストを削除すると、元のストアデータがグリッドに入力されていないことです。検索テキスト フィールドが空になったら、元のストア データをグリッドに入力するにはどうすればよいですか? 感謝。

私のコードはここにあります: incode newValueは検索テキストフィールドの値です。他に部分があるかどうかを確認しています。newValue null の場合は、元のストアをロードする必要があることを意味します。それ以外の場合は、ストアをフィルタリングしてレコードを表示します。元のストアをリロードするために以下のコードを追加しましたが、機能していません。

{
    xtype: 'textfield',
    name: 'searchField',
    hideLabel: true,
    width: 200,
    listeners: {
        change: {
            fn: this.onTextFieldChange,
            scope: this,
            buffer: 100
        }
    }
},

onTextFieldChange: function (field, newValue, oldValue, options) {
    if (newValue == '') {
        //grid.setStore(store);
        Ext.getCmp('grid').getStore().load();
        here grid is id of my Grid
        Ext.getCmp('grid').getView().refresh();
    } else {
        grid.store.load().filter([{
            id: 'name',
            property: "name",
            value: newValue,
            anyMatch: true
        }]);
    }
}
4

1 に答える 1

1

私はgrid.store.clearFilter();を追加しました。検索テキスト フィールドが空になったらフィルターをクリアします。正常に動作しています。乾杯 :)

于 2013-03-29T04:27:56.313 に答える