0

テキストフィールドにタイプのないツリーをフィルタリングしたいのですが、イベントがトリガーされたときです。次のように StoreFilterField をサブクラス化してみました。

class MyStoreFilter<M extends ModelData> extends StoreFilterField<M>{
public MyStoreFilter() {
            super();
        }

        public void startFilter(){
            super.onFilter();
        }


        @Override
        protected boolean doSelect(Store<M> store, M parent, M record,
                String property, String filter) {
            String name = record.get("name");
            name = name.toLowerCase();
            if (name.startsWith(filter.toLowerCase())) 
                return true;
            else
                return false;
        }

    };

そして、ツリーをフィルタリングしたいとき:

MyStoreFilter<ModelData> f=new MyStoreFilter<ModelData>();
f.setRawValue(myText);
f.bind(store);
f.startFilter();

しかし、うまくいかず、私のフィルターは私のツリーのすべてのアイテムを表示します。なにが問題ですか?

4

1 に答える 1

0

このコンストラクターを追加して解決しました:

public MyStoreFilter(String f)  {
    filtro=f;
    setAutoValidate(true);
    setValidateOnBlur(false);
    setTriggerStyle("x-form-clear-trigger");
    filter = new StoreFilter<M>() {
      public boolean select(Store<M> store, M parent, M model, String property) {
        String v = filtro;
        return doSelect(store, parent, model, property, v);
      }
    };
}
于 2013-02-22T16:14:52.907 に答える