Kendo UI 远程数据源修改
Kendo UI Remote DataSource Modification
我有一个 Kendo 数据源,它从远程服务器 (Json) 获取数据,并将数据绑定到客户端的 kendo 模板。
在客户端,现在我只显示数据。但是,我也想 add/remove 数据源中的数据。如何将修改后的数据源发送回服务器并将其存储在那里?
这是我正在尝试做的一个很好的例子。虽然此示例从局部变量读取数据,但请告诉我:
用户在客户端修改后,如何将dataSource存储在服务器端?
http://jsfiddle.net/derickbailey/D4g8S/
例如,add 方法只是在客户端更新数据源。但是,我想将它发送到服务器并以某种方式存储在那里。因此,如果其他人在另一个客户端中打开相同的网页,he/she 也可以看到更改。
$("#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。
据我了解,您问的是如何根据客户端的更改来更改服务器?如果是这样,您可以做三件事:
- 捕获您修改(添加、删除、更新)的数据,
- 序列化为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:JSON.stringify(data) 方法。
你可以post将这些数据用于控制器的操作并做一些工作。如何postJSON到MVC控制器是常见问题,请阅读here。
删除和更新类似。基本上你必须捕获你想要的数据,序列化并 post 采取行动。
您可以在数据源上使用 add
方法并指定 post 新数据的位置。 KendoUI 文档中有一个example。从那里您还可以配置 edit/remove 方法。
要从数据源对象获取 JSON 数组,请使用 toJSON 方法
dataSource.data().toJSON()
然后你可以post它返回到服务器
我有一个 Kendo 数据源,它从远程服务器 (Json) 获取数据,并将数据绑定到客户端的 kendo 模板。
在客户端,现在我只显示数据。但是,我也想 add/remove 数据源中的数据。如何将修改后的数据源发送回服务器并将其存储在那里?
这是我正在尝试做的一个很好的例子。虽然此示例从局部变量读取数据,但请告诉我:
用户在客户端修改后,如何将dataSource存储在服务器端?
http://jsfiddle.net/derickbailey/D4g8S/
例如,add 方法只是在客户端更新数据源。但是,我想将它发送到服务器并以某种方式存储在那里。因此,如果其他人在另一个客户端中打开相同的网页,he/she 也可以看到更改。
$("#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。
据我了解,您问的是如何根据客户端的更改来更改服务器?如果是这样,您可以做三件事:
- 捕获您修改(添加、删除、更新)的数据,
- 序列化为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:JSON.stringify(data) 方法。
你可以post将这些数据用于控制器的操作并做一些工作。如何postJSON到MVC控制器是常见问题,请阅读here。
删除和更新类似。基本上你必须捕获你想要的数据,序列化并 post 采取行动。
您可以在数据源上使用 add
方法并指定 post 新数据的位置。 KendoUI 文档中有一个example。从那里您还可以配置 edit/remove 方法。
要从数据源对象获取 JSON 数组,请使用 toJSON 方法
dataSource.data().toJSON()
然后你可以post它返回到服务器