2016-09-28 127 views
0

我遇到了具有k-細節模板作爲行結構的kendo網格的問題。 KendoUI版本v2014.3.1411(劍道UI Q3 2014 SP2)KendoUI kendo網格與k-細節模板不會觸發更新

這是html代碼:

<div kendo-grid="mainGrid" id="mobileRole" k-options="mainGridOptions"> 
    <div k-detail-template> 
     <div id="users_#= id #" kendo-grid k-options="loadUsers(dataItem)"></div> 
    </div> 
</div> 

當我編輯主排,點擊你可以在圖片中看到的按鈕.. 。 enter image description here

我可以編輯主行標籤(即「RoleBA_test」),則該行修改成功,但是當我刷新網格它再次顯示舊的標籤,這意味着更新已本地製造的,但尚未觸發到服務器。

怪異的發生在我刪除

<div k-detail-template> 
在這種情況下

的更新成功觸發服務器和行撐甚至網格刷新後修改。 這是mainGridOptions和負載的用戶我的角度javascript代碼:

mainGridOptions

$scope.mainGridOptions = gridOptions({ 
     dataSource: jData({ 
      read: { 
       url: function (data) { 
        return "api/read/rest_call"; 
       } 
      }, 
      update: { 
       url: function (data) { 
        return "api/update/rest_call"; 
       }, 
       beforeSend: function() { 
        blockUI.start(); 
       }, 
       complete: function (data, status) { 
        $scope.$evalAsync(function() { 
         blockUI.stop(); 
         if (status.toLowerCase() != 'error') { 
          $scope.editing = false; 
         } else { 
          //error 
         } 
        }); 
       }, 
       global: false 
      }, 
      destroy: { 
       url: function (data) { 
        return "api/destroy/rest_call 
       }, 
       beforeSend: function() { 
        blockUI.start(); 
       }, 
       complete: function (data, status) { 
        $scope.$evalAsync(function() { 
         blockUI.stop(); 
         if (status.toLowerCase() != 'error') { 
          $scope.editing = false; 
         } else { 
          //error 
         } 
        }); 
       }, 
       global: false 
      }, 
      create: { 
       url: function (data) { 
        return "api/create/rest_call"; 
       }, 
       beforeSend: function() { 
        blockUI.start(); 
       }, 
       complete: function (data, status) { 
        $scope.$evalAsync(function() { 
         blockUI.stop(); 
         if (status.toLowerCase() != 'error') { 
          $scope.editing = false; 
         } else { 
          alertify.alert(data.statusText); 
         } 
        }); 
       }, 
       global: false 
      }, 
      model: { 
       id: "id", 
       fields: { 
        id: { 
         type: "number" 
        }, 
        name: {}, 
       } 
      } 
     }).dataSource, 
     sortable: true, 
     columnMenu: true, 
     resizable: true 
    }); 

loadUsers

$scope.loadUsers = function (dataItem) { 
return gridOptions({ 
    dataSource: jData({ 
     read: { 
      url: function() { 
       return "api/read/rest_call/"; 
      } 
     }, 
     model: { 
      id: "id", 
      fields: { 
       id: { 
        type: "number" 
       }, 
      } 
     } 
    }).dataSource, 
    sortable: true, 
    columnMenu: true, 
    width: '90%', 
    resizable: true, 
    dataBound: function (e) { 
     onDataBound.call(this, 'mobileRoleUsers', dataItem); 
    } 
}); 
}; 

有沒有人有同樣的問題?

謝謝大家。

+0

這段代碼做了什麼:'onDataBound.call(this,'mobileRoleUsers',dataItem);'如果你刪除它,你的場景是否按預期工作? – dimodi

+0

嗨@dimodi,感謝您的評論,我試圖刪除它,但它仍然不會更新休息電話。 – BitRider

回答

0

儘管我使用的是最新版本2017.1.223,但我遇到過同樣的問題。

我試圖找到一些解決方案, ,我剛剛發現一個事實,即屬性「k-detail-template」只是一個不能替換爲格式「data-k -...」的格式,例如兼容HTML標記。

我認爲「k-detail-template」對角度有一些問題。