2016-03-22 6 views
0

Ich bin ziemlich neu mit Kendo-Grids.Kando-Gitterzelle automatisch aktualisieren nach Eingabe einer anderen Zelle

Bis jetzt habe ich es geschafft, ein paar Sachen zu machen und bekam einen Workaround für all meine Probleme.

Ich habe ein Raster mit 2 Spalten. Eine Spalte ist ein Produktcode, den der Benutzer eingeben sollte, und der andere ist eine Produktmenge, die automatisch gefüllt werden sollte, nachdem der Benutzer den Produktcode eingegeben hat. Dies sollte beim Änderungsereignis erfolgen.

Die Produktmenge wird von einem Service erhalten.

Bisher habe ich den folgenden Code:

var dataSource = new kendo.data.DataSource({ 
    batch: false, 
    autoSync: false, 
    data: [], 
    pageSize: 20, 
    schema: { 
     model: { 
      id: "ProductID", 
      fields: { 
       ProductCode: { type: "string", validation: { required: true } }, 
       ProductQuantity: { type: "number", validation: { required: false, editable: false } } 
      } 
     } 
    }, 
    edit: function (e) { 
     if (e.model.isNew() == false) { 
      $('[name="ProductQuantity"]').attr("readonly", true); 
     } 
    }, 
    change: function (e) { 
     if (e.action == "itemchange") { 
      debugger; 
      apModel.getProductQuantities(e.items[0].ProductCode).ifFetched().then(function (data) { 
       var data = JSON.parse(data.Response); 
      }) 
      //how to access next cell??? 

      $("#ap-grid").data("kendoGrid").saveRow(); 

     } 
    } 
}); 

$("#ap-grid").kendoGrid({ 
    dataSource: dataSource, 
    pageable: false, 
    height: 550, 
    toolbar: ["create"], 
    columns: [ 
     { field: "ProductCode", title: "Product Code" }, 
     { field: "ProductQuantity", title: "Quantity" }, 
           { command: ["edit", "destroy"], title: " ", width: "250px" }], 
    editable: "inline", 
}); 

Ich kann nicht einen Weg finden, wie die nächste Zelle für den Zugriff auf die Daten, um es hinzuzufügen.

Können Sie mir einen Hinweis geben? richtig

Vielen Dank im Voraus,

André

Antwort

0

Wenn Sie e.items[0].ProductQuantity in OnChange Ereignishandler Gitterzelle automatisch Wert, wenn Datenquelle binden aktualisieren soll.

Nach kendo docs:

e.items - Die Anordnung der Datenelemente, die (oder lesen) betroffen waren.

Das bedeutet, dass es in der ursprünglichen Zeile der Datenquelle referenziert.

+0

Oder vielleicht sollten Sie 'datasource.sync()' nach diesem Update aufrufen, weil Sie 'autoSync: false' gesetzt haben –

Verwandte Themen