剑道UI网格-更新不持久
Kendo UI Grid - Update not persisting
我一直在尝试对Kendo网格进行更新,但遇到了问题。
我使用Rails作为后端,当我进行更新时,服务器似乎显示一切正常:
Started PUT "/" for 127.0.0.1 at 2012-02-12 17:28:19 -0600
Processing by HomeController#index as
Parameters: {"models"=>"[{'"created_at'":'"2012-02-08T17:34:50Z'",
'"first_name'":'"Milla'",'"id'":2,'"last_name'":'"sfasfsdf'",'"password'":'"'",
'"updated_at'":'"2012-02-08T17:34:50Z'",'"user_name'"
:'"'"}]"}
Rendered home/index.html.erb within layouts/application (3.0ms)
Completed 200 OK in 89ms (Views: 88.0ms | ActiveRecord: 0.0ms)
但是,当我刷新视图时,没有任何变化。当我检查数据库时,当然那里也没有发生任何变化。
我浏览了这里关于如何在网格中进行编辑的文档:http://demos.kendoui.com/web/grid/editing.html
我看了Burke Hollands关于如何设置网格以使用Rails的视频:http://www.youtube.com/watch?v=FhHMOjN0Bjc&上下文=C3f358ceADOEgsToPDskKlwC22A9IkOjYnQhYyY9HI
肯定有什么事情我做得不对,但我就是没看到
这是我的代码,适用于剑道的东西:
var User = kendo.data.Model.define({
id: "id",
fields: {
first_name: { validation: { required: true } },
last_name: { validation: { required: true } }
}
});
var UsersData = new kendo.data.DataSource({
transport: {
read: {
url: "/users.json"
},
create: {
url: "/users/create.json",
type: "POST"
},
update: {
type: "PUT"
},
destroy: {
type: "DELETE"
},
parameterMap: function(options, operation) {
if (operation !== "read" && options.models) {
return {models: kendo.stringify(options.models)};
}
}
},
batch: true,
pageSize: 5,
schema: {
model: User
}
});
$("#users-grid").kendoGrid({
dataSource: UsersData,
navigatable: true,
editable: true,
selectable: true,
pageable: true,
sortable: true,
toolbar: ["create", "save", "cancel"],
columns: [
{
field: "first_name",
title: "First Name"
},
{
field: "last_name",
title: "Last Name"
},
]
});
再做一些研究,我就这样做了。。。
我添加了一个路由来覆盖Rails默认提供的7个RESTful路由。在Routes.rb文件中,添加此行。。。
match 'users' => 'users#update', :via => :put
这基本上意味着我们将通过访问控制器上的更新定义来处理所有看跌期权。
现在在控制器定义中,您希望以不同的方式处理更新,因为它不是RESTful。您需要首先解析通过parameterMap发送的JSON,然后迭代使用对象属性更新的对象。。。
def update
respond_to do |format|
@users = JSON.parse(params[:models])
@users.each do |u|
user = User.find(u["id"])
unless user.nil?
user.update_attributes u
end
end
format.json { head :no_content }
end
end
您也可以修改您的数据源,因为url键可以使用一个函数:
var UsersData = new kendo.data.DataSource({
transport: {
read: {
url: '/users.json',
dataType: 'json'
},
update: {
url: function (o) {
return '/users/' + o.id + '.json'
},
dataType: 'json',
type: 'PUT'
},
destroy: {
url: function (o) {
return '/users/' + o.id + '.json'
},
dataType: 'json',
type: 'DELETE',
},
create: {
url: '/users.json',
dataType: 'json',
type: 'POST'
},
parameterMap: function(options, operation) {
if (operation !== "read" && options.models) {
return {models: kendo.stringify(options.models)};
}
}
},
batch: true,
pageSize: 5,
schema: {
model: User
}
});
相关文章:
- 流星收集更新不是在更新文档
- 更新不起作用
- 单击“角度”复选框时更新不相关的字段
- 使用 JavaScript 存储、更改和更新不透明度
- 不可变,在映射内更新不返回正确的对象
- 实时更新的持久连接
- d3js散点图自动更新不起作用
- Bootstrap日期选择器中的更新不起作用
- 角度$cookies不持久
- AngularJS选择的插件,选择:更新不起作用,在浏览器中工作
- 简单的内部HTML更新不起作用
- DIV 自动更新不起作用
- 主干“智能”更新不会合并模型
- 挖空.js值当用户使用键盘时更新不起作用
- 角度JS模型更新不起作用
- 猫鼬查找ById和更新不拉
- 从已弃用的响应调用更新不起作用
- 更新查询更新不起作用
- Ember控制器计算的属性(Object类型)更新不起作用
- 剑道UI网格-更新不持久