2012-04-12 5 views
0

Ich muss zwei OCG-Filter kombinieren. jeder funktioniert getrennt, aber wenn ich sie mit Filter.Logical.OR kombiniere, funktioniert der erste nur.kombinieren zwei OCG-Filter in Openlayers

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

i Openlayers verwenden 2.11

Antwort

1

Versuchen Komma zu entfernen (,) nach dem zweiten Filter, sollte es nicht da sein.

Wenn das nicht hilft, ich würde versuchen Filter separat zu erstellen und diese in „oder“ -Filter:

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

i Ihren Vorschlag versucht, immer noch, die equalToFilter funktioniert gut. aber der likeFilter ich bekam den Fehler: FEHLER: ungültige Eingabesyntax für Ganzzahl: "Testname" ich verstehe nicht, warum es Ganzzahl sein sollte !! und wenn ich wie Filter allein versuche, funktioniert es gut! – Noon

+0

Funktioniert Ihr Filter, wenn Sie versuchen, Werte der "Wert" -Eigenschaften jedes Filters manuell anzugeben? – drnextgis

+0

Nein, es zeigt immer den Wert des ersten Filters an. – Noon