2016-11-21 1 views
0

Ich benutze das ejtreegrid um meine hierarchischen Daten anzuzeigen und zu bearbeiten. Ich verwende auch das actionComplete-Ereignis, um Daten an meinen asp.net-Controller zu senden, um Daten zu persistieren. hier der Code meines Controller:syncfusion ejtreegrid modifiziert neu hinzugefügte Knoten

public int AddFamille(string DESIGNATION) 
     { 


      FAMILLE f = new FAMILLE() 
      { 

       FA_DESIGNATION = DESIGNATION, 
       FA_ID_PARENT = 1}; 
       ctx.FAMILLES.Add(f); 
       ctx.SaveChanges(); 

      return f.ID_FAMILLE; 
     } 

es kehrt die ID der neu hinzugefügten Einheit, ich habe das überprüft, und es ist in Ordnung.

auf der Client-Seite hier der Ajax-Aufruf

function OnactionComplete(args) { 
    if (args.requestType == "addNewRow") { 
        var item = args.addedRow; 

        $.ajax({ 
         type: "POST", 
         url: '/Admin/AddFamille?`DESIGNATION='+item.DESIGNATION,` 

         success: function (data) { 
          args.addedRow.ID= data; 
         } 
        }); 
       } 
} 

wie Sie ich versuche, ersetzen Sie die hinzugefügte Artikel-ID mit der neuen ID sehen, die vom Server kam, aber unfortunally hat es keine Wirkung.

keine Idee ist willkommen. danke

Antwort

0

Mit der öffentlichen Methode "refreshRow" können wir die spezifische Zeile in TreeGrid aktualisieren.

finden Sie das folgende Codebeispiel:

function actionComplete(eventArgs) {   
     var treeObj = this, 
      //To get the index of newly added row 
      addedRow = treeObj.model.selectedItem; 
     if (eventArgs.requestType === 'addNewRow') {     
      //Newly Added Record is obtained here , which can be updated to database 
      var addedRecord = eventArgs.addedRow; 
      $.ajax({ 
       type: "POST", 
       data: { Name: addedRecord.TaskName }, 
       dataType: "json",     
       url: "/TreeGrid/Add",//Add is Server side method 
       success: function (result) {      
        addedRow.TaskId = addedRow.item.TaskId = result; 
        //To refresh the newly added row 
        treeObj.refreshRow(treeObj.model.updatedRecords.indexOf(addedRow)); 
       }, 
      }); 
     } 
    } 

die Probe finden Sie von unten Standort

Sample

Grüße,

Syncfusion Mannschaft

+0

Dank für die Probe, wirklich schätzen, aber leider nicht th Der Trick .i habe einen Konsolenfehler in der Zeile addedRow.TaskId = addedRow.item.TaskId = result; das Objekt ist undefined – user2475096

+0

BTW Ich benutze die Javascript-Version des Steuerelements nicht die .net-Mvc eins – user2475096

Verwandte Themen