2016-11-21 82 views
0

我正在使用ejtreegrid顯示和編輯我的分層數據。 我也使用actionComplete事件發送數據到我的asp.net控制器來保存數據。 這裏我控制器代碼:syncfusion ejtreegrid修改新添加的節點

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; 
     } 

它返回ID新加入的實體,我檢查了這一點,它的確定。

在客戶端上這裏的Ajax調用

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; 
         } 
        }); 
       } 
} 

,你可以看到我試圖取代與從服務器附帶的新ID添加的項目ID

,但unfortunally它沒有任何效果。

任何想法是受歡迎的。 謝謝

回答

0

通過使用「refreshRow」公共方法,我們可以刷新TreeGrid中的特定行。

請看以下代碼示例:

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)); 
       }, 
      }); 
     } 
    } 

請從下列位置

Sample

祺找到樣本,

Syncfusion團隊

+0

感謝您的樣品,真的很感激,但不幸的是它沒有訣竅。我有一個控制檯錯誤在行中addedRow.TaskId = addedRow.item.TaskId = result;物業項目是undefined – user2475096

+0

btw我使用的是控制的JavaScript版本,而不是.net mvc one – user2475096