0

2つのOCGフィルターを組み合わせる必要があります。それぞれが別々に機能しますが、Filter.Logical.ORを使用してそれらを組み合わせると、最初のものだけが機能します。

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 + "*"   
    }),   
    ] 
}); 

私はopenlayers2.11を使用しています

4

1 に答える 1

1

2番目のフィルターの後にコンマ(、)を削除してみてください。そこにあるべきではありません。

それでも問題が解決しない場合は、フィルターを個別に作成して、「または」フィルターに追加してみます。

orFilter.filters.push(equalToFilter);
orFilter.filters.push(likeFilter);
于 2012-04-13T06:28:55.877 に答える