2017-10-22 3 views
0

Ich benutze KendoGid, um die Daten anzuzeigen, und es hat Felder (Benutzername, Vorname, Nachname, E-Mail, Telefonnummer, RolleName, LieferantCode). Ich bekomme Daten genau, alle CRUD-Operationen werden gut ausgeführt.Mehrere benutzerdefinierte Kendo-Editor

Hier ist mein Netzcode:

 var grid = $("#grid").kendoGrid({ 
     dataSource: usersDataSource, 
     schema: { 
      model: { 
       id:"$id", 
       fields: { 
        userName: { }, 
        firstName: { }, 
        lastName: { }, 
        email: { }, 
        phoneNumber: { }, 
        roleName: { }, 
        supplierCode: { } 
       } 
      } 
     }, 
     editable: "popup", 
     edit: function (e) { 
      $(e.container).find('input[name="prontoCode"]').attr({ "hidden": true }); 

     }, 
     columns: 
       [  .....Other Fields Definition ... 
        { 
         field: "roleName", 
         title: "Role Name", 
         editor: rolesDropDownEditor 
        }, 
        { 
         field: "prontoCode", 
         title: "Supplier Code", 
         editor: supplierDropDownEditor, 
        } 
       ], 
    }); 

Wie Sie oben in meiner Spalte Definition sehen können, habe ich benutzerdefinierten Editor (kendoDropDown) und Kendo Popup-Bearbeitung Eigenschaft. Hier ist Code für rolesDropDownEditor:

 function rolesDropDownEditor(container, options) { 
     $('<input required name="' + options.field + '"/>') 
      .appendTo(container) 
      .kendoDropDownList({ 
       dataSource: { 
        transport: { 
         read: { 
          url: "URL", 
          type: "get", 
          datatype: "json", 
         } 
        } 
       }, 
       change: function (e) { 
        if (e.val == "Supplier") { 
        $(e.container).find('input[name="prontoCode"]').attr({ "hidden": false }); 
        } 
       } 
      }); 
    } 

Die Werte in rolesDropDown sind (admin, Inspektor, Ingenieur & Lieferant), ich möchte den supplierDropDown zeigen, wenn der Benutzer wählen "Supplier" aus dem roleDropDown .. Jede Hilfe zu Wie kann ich ein Drop-Down-Menü durch die Change-Funktion eines anderen anzeigen oder ausblenden? Danke

Antwort

0

In der supplierDropDownEditor, Finden Sie die TR (Zeile) ausgewählt.

var tr = $("#grid").data("kendoGrid").dataItem($(container[0]).closest("tr")) 

Suchen Sie den tr.roleName-Wert.

Entsprechend dem roleName verschiedene dataSources erstellen (Einfach den if-else Block einfügen und verschiedene Ajax Aufrufe hinzufügen), Bind die benötigte Datenquelle.

Bitte lassen Sie mich wissen, wenn Sie weitere Informationen benötigen.

Verwandte Themen