static/ext/src/ux/grid/FilterBar.js
function(store) {
		var me = this;

		if (!me.autoUpdateAutoStores && me.autoStoresLoaded) return;

		me.autoStores.eachKey(function(key, item) {
			var field = me.fields.get(key);
			if (field) {
				field.suspendEvents();
				var fieldValue = field.getValue();
			}
			if (!store.remoteFilter) { // values from local store
				var data = store.collect(key, true, false).sort();
				var records = [];
				Ext.each(data, function(txt) {
					if (Ext.isEmpty(txt)) {
						Ext.Array.insert(records, 0, [{
							text: me.autoStoresNullText,
							id: me.autoStoresNullValue
						}]);
					} else {
						records.push({
							text: txt,
							id: txt
						});
					}
				});
				item.loadData(records);
			} else { // values from server
				if (store.proxy.reader.rawData[me.autoStoresRemoteProperty]) {
					var data = store.proxy.reader.rawData[me.autoStoresRemoteProperty];
					if (data[key]) {
						var records = [];
						Ext.each(data[key].sort(), function(txt) {
							if (Ext.isEmpty(txt)) {
								Ext.Array.insert(records, 0, [{
									text: me.autoStoresNullText,
									id: me.autoStoresNullValue
								}]);
							} else {
								records.push({
									text: txt,
									id: txt
								});
							}
						});
						item.loadData(records);
					}
				}
			}
			if (field) {
				field.setValue(fieldValue);
				field.resumeEvents();
			}
		}, me);
		me.autoStoresLoaded = true;
		if (me.grid.store.remoteFilter && !me.autoUpdateAutoStores) {
			delete me.grid.store.proxy.extraParams[me.autoStoresRemoteProperty];
		}
	}
function(store) {
		var me = this;

		if (!me.autoUpdateAutoStores && me.autoStoresLoaded) return;

		me.autoStores.eachKey(function(key, item) {
			var field = me.fields.get(key);
			if (field) {
				field.suspendEvents();
				var fieldValue = field.getValue();
			}
			if (!store.remoteFilter) { // values from local store
				var data = store.collect(key, true, false).sort();
				var records = [];
				Ext.each(data, function(txt) {
					if (Ext.isEmpty(txt)) {
						Ext.Array.insert(records, 0, [{
							text: me.autoStoresNullText,
							id: me.autoStoresNullValue
						}]);
					} else {
						records.push({
							text: txt,
							id: txt
						});
					}
				});
				item.loadData(records);
			} else { // values from server
				if (store.proxy.reader.rawData[me.autoStoresRemoteProperty]) {
					var data = store.proxy.reader.rawData[me.autoStoresRemoteProperty];
					if (data[key]) {
						var records = [];
						Ext.each(data[key].sort(), function(txt) {
							if (Ext.isEmpty(txt)) {
								Ext.Array.insert(records, 0, [{
									text: me.autoStoresNullText,
									id: me.autoStoresNullValue
								}]);
							} else {
								records.push({
									text: txt,
									id: txt
								});
							}
						});
						item.loadData(records);
					}
				}
			}
			if (field) {
				field.setValue(fieldValue);
				field.resumeEvents();
			}
		}, me);
		me.autoStoresLoaded = true;
		if (me.grid.store.remoteFilter && !me.autoUpdateAutoStores) {
			delete me.grid.store.proxy.extraParams[me.autoStoresRemoteProperty];
		}
	}
private