州名、首都、寒い天気を表示するグリッドをロードするストアがあります。
[寒い天気]列の[はい]の値に応じてストアをフィルタリングするチェックボックスもあります。
チェックボックスをクリックすると、グリッドは「はい」の状態をフィルタリングして表示しますが、チェックボックスをオフにすると、何も実行されません。
ストアを元に戻して前のストアを表示するにはどうすればよいですか?以下は私のチェックボックスフィールドです。助けてください。
items: [
{
xtype: 'checkboxfield',
boxLabel: 'Show only Cold State',
scope: this,
handler: function (field, value) {
scope: this,
this.checkValue = field.getValue();
console.log(this.checkValue);
if (this.checkValue == true) {
this.store.filter('Cold', 'Yes');
}
else if (this.checkValue == false) {
}
},
更新されたコード-これを行うと、このエラーが発生します
TypeError:tempstore1は未定義です
items: [
{
xtype: 'checkboxfield',
boxLabel: 'Show only Cold State',
scope: this,
handler: function (field, value) {
scope: this,
this.checkValue = field.getValue();
console.log(this.checkValue);
if (this.checkValue == true) {
var tempstore1 = Ext.StoreMgr.lookup('store');
tempstore1.filters.add('CheckBoxFilter', new Ext.util.Filter({
property: 'Cold',
value: 'Yes',
root: 'myTable'
}));
console.log('here');
tempstore1.load();
}
else if (this.checkValue == false) {
this.store.filters.removeAtKey('CheckBoxFilter');
}
},
2回目の更新-このエラーが発生しました
TypeError:a.getRoot.call(a、d)が未定義です
それ以外の
var tempstore1 = Ext.StoreMgr.lookup('store');
使ってます
var tempstore1 = Ext.getCmp('GridArea1').store;
GridArea1
グリッドパネルのIDです。
3回目の更新-このエラーが発生します
var tempstore1 = Ext.getCmp('GridArea1').getStore();
chromeデバッガーからのエラー...「true」と「here」は私のconsole.logであり、「h」の部分も同様です...これは私のデータの代わりにtempstore1が持っているものです。
true
h {hasListeners:e、scope:h、loading:false、events:Object、eventsSuspended:false…}
here
Uncaught TypeError:undefinedのプロパティ'Cold'を読み取ることができません