2017-10-05 1 views
0

Ich habe ein Kendo Grid mit Inline-Bearbeitungsoptionen. Ich habe eine Dropdown-Liste, aus der Benutzer Werte auswählen müssen. Ich möchte bestimmte Elemente aus dem Dropdown dynamisch deaktivieren. Ich muss Optionen dynamisch aus dem Dropdown-Menü aktivieren und deaktivieren, damit deaktivierte Objekte in einem separaten Array als Quelle gespeichert werden. Here ist ein Beispiel.Kendo Grid Inline Edit mit Dropdown-Option deaktiviert

Hier ist ein sample von Kendo Website.

Another Example

+0

Und was ist Ihr Problem? Das Dojo-Beispiel macht genau das, was Sie wollen. – DontVoteMeDown

+0

@DontVoteMeDown Danke für den Kommentar, aber es funktioniert einfach nicht. Ich habe ID gesetzt, und isDeleted Optionen, es gibt keine Laufzeitfehler, aber deaktiviert nicht die Option –

+1

Es gibt nicht genug Quellcode Ihres Problems. Sie sollten mehr oder sogar ein Dojo-Beispiel hinzufügen. Sonst wird es schwer sein zu helfen. – DontVoteMeDown

Antwort

0

Da die Frage in engem Zusammenhang mit this Kendo UI Dojo dreht es Basis zu halten versuche ich zu erklären, was der Code tut und wie es zu meinem Problem abzubilden.

Zunächst einmal brauchen wir eine Art von Markierung zu identifizieren, in denen die Option zu deaktivieren sein muss oder nicht für die isDeleted Flagge einführen mit false wird entsprechend aktualisiert.

Dann müssen wir folgenden Abschnitt in HTML hinzufügen, hier ist, wo die Magie passiert, gibt es Ihnen eine Vorlage, die entscheiden wird, entweder müssen wir k-state-disabled Klasse zur Option hinzufügen oder nicht abhängig von dem Wert von isDeleted.

<script id="template" type="text/x-kendo-template"> 
    <span class="#: isDeleted ? 'k-state-disabled': ''#"> 
     #: name # 
    </span> 
</script> 

Damit muss ich gemacht geringfügige Änderungen an Code wie folgt und es funktionierte

$('<input name="' + options.field + '"/>') 
        .appendTo(container) 
        .kendoDropDownList({ 
         dataSource: { 
         data: myDataSource // DYNAMIC SOURCE 
         }, 
         dataTextField: "textField", 
         dataValueField: "ValueField", 
         select: function (e) { 
          if (e.dataItem.isDeleted) { 
           e.preventDefault(); 
          } 
         }, 
         template: kendo.template($("#template").html()) 
        });