1

現在、with フィルターをセットアップしていListGridますが、複数のアイテムを選択するフィールドのフィルターを実装する際に問題があります。

これが私が達成したいことの例です:

私はListGridこれらの値を持つを持っています:

_________________
|Fruits Selected|
|_______________|
|Apple          |
|Apple,Orange   |
|Orange         |
|_______________|

「Multi-Item Filter」でオレンジをフィルタリングして選択しようとすると、グリッドに次のように表示されるはずです。

_________________
|Fruits Selected|
|_______________|
|Apple,Orange   |
|Orange         |
|_______________|

しかし、代わりに、私はこれしか見ません:

_________________
|Fruits Selected|
|_______________|
|Orange         |
|_______________|

期待される出力を間違って解釈していますか? もしそうなら、複数のアイテム フィルターの処理方法をカスタマイズする方法はありますか?

もう一つ、私はGenericGwtRpcDataSourceこのフォーラムから使用しています。うまくいけば、これは問題ではありません。

要求されたサンプル コードは次のとおりです

public class FruitLocalDS extends DataSource {

private static FruitLocalDS instance = null;

public static FruitLocalDS getInstance() {
    if (instance == null) {
        instance = new FruitLocalDS("supplyItemLocalDS");
    }
    return instance;
}

public FruitLocalDS(String id) {
    setID(id);

    DataSourceEnumField fruitNameField = new DataSourceEnumField(
            "fruitNames", "Fruit Name");
    fruitNameField.setMultiple(true);
    fruitNameField.setValueMap("Apple", "Guyabano", "Pineapple", "Orange",
            "Grapes");

    setFields(fruitNameField);
    setClientOnly(true);
    setTestData(Fruit.getDummyRecords());
}}

ListGridRecord :

public class Fruit  extends ListGridRecord {

public Fruit(String[] fruitNames) {
    setFruitNames(fruitNames);
}

public void setFruitNames(String[] fruitNames) {
    setAttribute("fruitNames", fruitNames);
}

public String getFruitName() {
    return getAttribute("fruitNames");
}

public static Fruit[] getDummyRecords() {
    return new Fruit[] {
            new Fruit(new String[]{"Orange"}), 
            new Fruit(new String[]{"Apple", "Orange"}),
            new Fruit(new String[]{"Guyabano","Orange"}),
            new Fruit(new String[]{"Pineapple","Orange"}),
    };
}}

エントリポイント:

public class MultiItemTest implements EntryPoint {
public void onModuleLoad() {
    final DataSource dataSource = FruitLocalDS.getInstance();

    ListGrid listGrid = new ListGrid();
    listGrid.setWidth(1000);
    // listGrid.setAutoFitData(Autofit.VERTICAL);
    listGrid.setHeight(224);
    listGrid.setDataPageSize(50);
    listGrid.setDataSource(dataSource);
    listGrid.setShowFilterEditor(true);
    listGrid.setCanEdit(true);
    listGrid.setAutoFetchData(true);
    listGrid.setEditEvent(ListGridEditEvent.DOUBLECLICK);

    listGrid.setShowRowNumbers(true);
    listGrid.setFilterOnKeypress(true);
    listGrid.setFetchDelay(1);

    listGrid.draw();
}}

フィルターで「オレンジ」を選択しようとすると、次のように表示されます。

Orange

私が期待するのは:

Apple,Orange
Guyabano,Orange
Orange
Pineapple, Orange
4

0 に答える 0