2016-03-18 73 views
1

我有一個從遠程服務器(Json)獲取數據並將數據綁定到客戶端的kendo模板的Kendo數據源。Kendo UI遠程數據源修改

在客戶端上,現在我只顯示數據。但是,我想要在dataSource中添加/刪除數據。如何在修改後將dataSource發送回服務器並將其存儲在那裏?

這是我正在嘗試做的一個很好的例子。雖然本示例從本地變量中讀取其數據,但請您告訴我:

如何在客戶端修改用戶後在服務器端存儲數據源?

http://jsfiddle.net/derickbailey/D4g8S/

例如add方法只是更新在客戶端的數據源。但是,我想將它發送到服務器,並將其存儲在那裏。作爲結果,如果其他人在另一個客戶端中打開相同的網頁,他/她也可以看到更改。

$("#add").click(function(e){ 
    e.preventDefault(); 

    var $todo = $("input[name='description']"); 

    currentId += 1; 
    dataSource.add({ 
    id: currentId, 
    done: false, 
    description: $todo.val() 
    }); 

    $todo.val(""); 
    $todo.focus(); 
}); 

我在服務器端使用C#.Net MVC。

回答

1

據我所知,你問的是如何根據客戶端的變化做出服務器更改?如果是真的,你可以做三件事情:

你修改
  • 捕撈數據(添加,刪除,更新),
  • 序列化到JSON,
  • 發送到控制器的動作。

下面是簡單的例子,你怎麼會看您的數據源的數據:您分配這些數據的一些對象,你可以序列化到JSON與後

var dataSource = new kendo.data.DataSource({ 
    data: [ 
    { id: 1, name: "Jane Doe", age: 30 }, 
    { id: 2, name: "John Doe", age: 33 } 
    ] 
}); 

dataSource.fetch(function(){ 
    // reading data from dataSource 
    var raw = dataSource.data(); 
    // entire dataSource 
    alert("This is entire dataSource: " + JSON.stringify(raw)); 
    // this is what will be removed 
    alert("This is removed: " + JSON.stringify(raw[0]));  
    dataSource.remove(raw[0]);   
    // this is what is rest 
    alert("This is rest: " + JSON.stringify(raw)); 
}); 

:JSON.stringify(數據)的方法。

比你可以發佈這些數據控制器的行動,並做一些工作。如何將JSON發佈到MVC控制器是常見問題,請閱讀here

刪除和更新是相似的。基本上你必須捕捉你想要的數據,序列化併發布到行動。

1

您可以在數據源上使用add方法,並指定在哪裏發佈新數據。 KendoUI文檔中有一個example。從那裏你也可以配置編輯/刪除方法。

1

從數據源對象使用JSON獲得陣列toJSON方法

dataSource.data().toJSON() 

,那麼你可以將它張貼到服務器

Demo