2012-03-24 7 views
0

反応しない、ここに私のコードは次のとおりです。ExtGWT StoreFilterField入力は、私は(煎茶のGXTを使用して)列のフィルタリングにビルドでグリッドを構築しようとしている

public Grid<Stock> createGrid() { 


    // Columns definition 
    ColumnConfig<Stock, String> nameCol  = new ColumnConfig<Stock, String>(props.name(),  100, "Company"); 

    // Column model definition and creation 
    List<ColumnConfig<Stock, ?>> cl = new ArrayList<ColumnConfig<Stock, ?>>(); 
    cl.add(nameCol); 
    ColumnModel<Stock> cm = new ColumnModel<Stock>(cl); 

    // Data populating 
    ListStore<Stock> store = new ListStore<Stock>(props.key()); 
    store.addAll(TestData.getStocks()); 


    // Grid creation with data 
    final Grid<Stock> grid = new Grid<Stock>(store, cm); 
    grid.getView().setAutoExpandColumn(nameCol); 
    grid.setBorders(false); 
    grid.getView().setStripeRows(true); 
    grid.getView().setColumnLines(true); 


    // Filters definition 
    StoreFilterField<Stock> filter = new StoreFilterField<Stock>() { 

     @Override 
     protected boolean doSelect(Store<Stock> store, Stock parent, Stock item, String filter) { 

      // Window.alert(String.valueOf("a")); 

      String name = item.getName(); 
      name = name.toLowerCase(); 
      if (name.startsWith(filter.toLowerCase())) { 
       return true; 
      } 
      return false; 
     } 
    }; 
    filter.bind(store); 

    cm.addHeaderGroup(0, 0, new HeaderGroupConfig(filter, 1, 1)); 
    filter.focus(); 
    return grid; 
} 

私の問題は、次のとおりです。私はこのコードを実行した後、私はフィルタ入力に何も書き込めません。この例では、テストデータとクラス(Stock.javaとStockProperties.java)を使用しています。http://sencha.com/examples-dev/#ExamplePlace:filtergrid この関数が呼び出されたかどうかを調べるために、allSelectメソッドにallertを入れようとしましたが、 't。 アイデアを歓迎します。ありがとう。

答えて

0

私はあなたのコードを動作させることができました。 StoreFilterFieldクラスのコードにコンパイラエラーがあることがわかりました。ここでは、最初の列の値、つまりStockモデルの名前フィールドに基づいてグリッドをフィルタリングするコードを示します。

StoreFilterField<Stock> filter1 = new StoreFilterField<Stock>() { 

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

filter1.bind(store); 

Btw、これをGXT 2.2.5およびGWT 2.4でテストしました。 // WWW:

おかげで、 ガネーシュ

+0

お時間をありがとうとdisableTextSelection(false)を置き換えるには、私はこの論文をhttpに応じてこの問題を解決します。 sencha.com/forum/archive/index.php/t-91956.html?s=8d0140f4c37e7d598bd3f99f6ad66832私はsetAllowTextSelection(true)でdisableTextSelection(false)を覚えています。 – user1289877