2012-04-12 17 views
0

2つのOCGフィルタを組み合わせる必要があります。それぞれが分離して動作しますが、Filter.Logical.ORを使用してそれらを組み合わせると、最初のものだけが動作します。Openlayersで2つのOCGフィルタを組み合わせる

var c_filter = new OpenLayers.Filter.Logical({ 
type: OpenLayers.Filter.Logical.OR, 
filters: [ 
new OpenLayers.Filter.Comparison({ 
    type: OpenLayers.Filter.Comparison.EQUAL_TO, 
    matchCase:false, 
    property: 'id', 
    value:(document.getElementById("Text")).value  
    }), 
new OpenLayers.Filter.Comparison({ 
    type: OpenLayers.Filter.Comparison.LIKE, 
    matchCase:false, 
    property: 'name', 
    value: "*" +(document.getElementById("Text")).value + "*" 
    }), 
    ] 
}); 

私は2.11

答えて

1

は、第二のフィルタの後にコンマ(、)を削除してください、それはすべきではないOpenLayersを使用します。

それは私が個別にフィルタを作成してに「または」-filterそれらを追加しようと解決しない場合:

orFilter.filters.push(equalToFilter); 
orFilter.filters.push(likeFilter); 
+0

私はまだ、equalToFilterが正常に動作し、あなたの提案を試してみました。しかしlikeFilter私はエラーを受け取りました: エラー:整数の入力構文が無効です: "テスト名" なぜ整数でなければならないのですか? と思ったら、私はフィルターを好きにしてみてください、うまくいきます! – Noon

+0

各フィルタの「値」プロパティの値を手動で指定しようとすると、フィルタは機能しますか? – drnextgis

+0

いいえ、常に最初のフィルタの値を表示します。 – Noon

関連する問題