2016-03-29 6 views
0

Ich versuche, ein Element aus dem Drop-down-Menü des Kendo-Grid-Filters zu entfernen. Aber es wird immer noch gerendert. Wie kann ich ein solches Verhalten erreichen?Entfernen von Optionen aus dem Kendo-Grid-Filter

$("#grid").kendoGrid({ 
    columns: [ 
    { field: "someDate", type: "date" } 
    ], 
    dataSource: [ 
    { someDate: "2016-3-29"}, 
    { someDate: "2016-3-30"} 
    ], 
    filterable: { 
    extra: true, 
    operators: { 
     date: { 
     gte: "Is after or equal to", 
     lte: "Is before or equal to" 
     } 
    } 
    }, 
    filterMenuInit: function(e) { 
    e.container.find("select:eq(0)>option")[1].remove(); 
    e.container.find("select:eq(1)>option")[1].remove(); 
    e.container.find("select:eq(2)>option")[0].remove(); 
    } 
}); 

Link auf dojo. Bitte helfen.

BEARBEITET: Ich brauche zwei komplexe Filter für Daten. Im ersten Filter brauche ich nur "Ist nach oder gleich", dann "UND", und im zweiten Filter brauche ich nur "Ist vor oder gleich". Ich versuche dies zu tun, indem ich "Ist vor oder gleich" aus dem ersten Dropdown und "Ist nach oder gleich" aus dem zweiten Dropdown-Menü entferne.

Antwort

1

Statt Entfernen Sie hinzufügen können, nur das, was Sie wollen

filterable: { 
       extra: false, 
       operators: { 
       string: { 
        startswith: "Starts with", 
        eq: "Is equal to", 
        neq: "Is not equal to" 
          } 
         } 
       }, 
+0

aktualisiert Es wird mir nicht helfen. Ich brauche zwei komplexe Filter für Daten. Im ersten Filter brauche ich nur "Ist nach oder gleich", dann "UND", und im zweiten Filter brauche ich nur "Ist vor oder gleich". Ich kann das nicht so machen. – Neshta

+0

Ich habe einige Details für mehr Klarheit hinzugefügt. – Neshta

1

Sie müssen die kendoDropDownList-Objekt erhalten, dann entfernen Sie das Element aus der Datenquelle; Ich habe Ihre dojo

<script> 
    $("#grid").kendoGrid({ 
     columns: [ 
      { field: "name" } 
     ], 
     dataSource: [ 
      { name: "Jane Doe"}, 
      { name: "John Doe"} 
     ], 
     filterable: true, 
     filterMenuInit: function(e) { 
     if (e.field == "name") { 
      var filter1 = e.container.find("select:eq(0)").data("kendoDropDownList"); 
      var filter2 = e.container.find("select:eq(2)").data("kendoDropDownList"); 
      filter1.dataSource.remove(filter1.dataSource.at(0)); 
      filter1.select(0); 
      filter2.dataSource.remove(filter2.dataSource.at(0)); 
      filter2.select(0); 
      } 
     } 
    }); 
</script> 
+0

Aktualisiert den Dojo-Code zu Ihrem bearbeiteten Beispiel: http://dojo.telerik.com/EPegi/7 – Failwyn

+0

Es funktioniert, wenn Grid das erste Mal geladen wird. Wenn Sie jedoch die Löschtaste drücken, wird das erste Dropdown-Menü auf den leeren Wert zurückgesetzt. Ich schätze, dass es den Standardwert eingestellt hat, der entfernt wird. – Neshta

+0

Dies ist technisch ein Hack, da es den Wert eines Mitglieds setzt, der privat sein soll ... Aber es funktioniert ... ... filter1._initial = 'lte'; http://dojo.telerik.com/EPegi/11 – Failwyn

Verwandte Themen