Kendo ui 剑道UI网格批量更新
我使用以下代码创建了一个网格Kendo ui 剑道UI网格批量更新,kendo-ui,kendo-grid,Kendo Ui,Kendo Grid,我使用以下代码创建了一个网格 <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <div id="grid-wrapper" style="margin: 5px 5px;height: calc(100% - 10px)"> <div class="k-content" id="grid"> </div>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<div id="grid-wrapper" style="margin: 5px 5px;height: calc(100% - 10px)">
<div class="k-content" id="grid">
</div>
</div>
<script type="text/x-kendo-template" id="fts">
<input type="search" id="search" class="k-input k-textbox" style="width: 150px" />
</script>
<script>
// 数据源
var crudServiceBaseUrl = "data/infra/roles";
var ds_options = {
url: crudServiceBaseUrl,
dataType: "json",
contentType : 'application/json; charset=UTF-8',
type : 'POST'
};
var dataSource = new kendo.data.DataSource({
transport: {
read: ds_options,
update: ds_options,
destroy: ds_options,
create: ds_options,
parameterMap: function(options, operation) {
options.action = operation;
return kendo.stringify(options);
}
},
batch: true,
pageSize: 10,
serverPaging : true,
serverFiltering : true,
serverSorting : true,
schema: {
total : "total",
data : "data",
model: {
id: "roleID",
fields: {
roleID: { editable: true, nullable: false },
sortNo: { validation: { required: true } },
roleName: { validation: { required: true } },
roleStatus: { },
allocated: {type : 'number' }
}
}
},
requestEnd : function(e){
console.log('request end of role grid');
},
error : function(e){
console.log('error happened:' + e.errors);
}
});
function edit(){
alert('edit');
}
var grid = $("#grid").kendoGrid({
dataSource : dataSource,
toolbar : [{
text: "新增",
imageClass: "k-add",
className: "k-grid-add",
iconClass: "k-icon",
click : function(e){
alert('add');
}
},{
text: "编辑",
imageClass: "k-edit",
className: "a-g-e",
iconClass: "k-icon",
},{
text: "删除",
imageClass: "k-delete",
className: "a-g-d",
iconClass: "k-icon"
},{
template : $("#fts").html()
}],
height : '100%',
pageable: true,
columns: [
{ field:"roleID", title: "角色编号", visible : false},
{ field:"sortNo", title: "排序号"},
{ field:"roleName", title: "角色名称"},
{
field:"roleStatus",
title: "角色状态",
filterable: {
ui: statusFilter
}
},
{ field:"allocated", title: "已分配用户数"}
],
editable: "popup",
resizable: true,
selectable : "row",
sortable : true,
filterable: {
extra : false,
messages: {
info: "查询条件:", // sets the text on top of the filter menu
filter: "查询", // sets the text for the "Filter" button
clear: "清除", // sets the text for the "Clear" button
// when filtering boolean numbers
isTrue: "是", // sets the text for "isTrue" radio button
isFalse: "否", // sets the text for "isFalse" radio button
//changes the text of the "And" and "Or" of the filter menu
and: "且",
or: "或"
},
operators: {
//filter menu for "string" type columns
string: {
eq: "等于",
neq: "不等于",
startswith: "以……开始",
contains: "包含……",
endswith: "以……结束"
},
//filter menu for "number" type columns
number: {
eq: "等于",
neq: "不等于",
gte: "大于等于",
gt: "大于",
lte: "小于等于",
lt: "小于"
},
//filter menu for "date" type columns
date: {
eq: "等于",
neq: "不等于",
gte: "大于等于",
gt: "大于",
lte: "小于等于",
lt: "小于"
},
//filter menu for foreign key values
enums: {
eq: "等于",
neq: "不等于"
}
},
},
navigatable : false,
reorderable : true,
columnMenu: {
messages: {
sortAscending: "升序排列",
sortDescending: "降序排列",
filter: "过滤条件",
columns: "选择列"
}
}
}).data('kendoGrid');
function statusFilter(ele){
ele.kendoDropDownList({
dataTextField: "text",
dataValueField: "value",
dataSource: [{text : "正常", value : "1"}, {text : "停用", value : "2"}],
optionLabel: "--Select Value--"
});
}
$('.a-g-e', '#grid').bind('click', function(e){
grid.editRow(grid.select());
});
$('.a-g-d', '#grid').bind('click', function(e){
grid.removeRow(grid.select());
});
</script>
<style scoped>
.k-dropdown-wrap {
margin-bottom : 2px
}
</style>
// 数据源
var crudServiceBaseUrl=“数据/infra/roles”;
变量ds_选项={
url:crudServiceBaseUrl,
数据类型:“json”,
contentType:'application/json;charset=UTF-8',
类型:“POST”
};
var dataSource=new kendo.data.dataSource({
运输:{
阅读:ds_选项,
更新:ds_选项,
销毁:ds_选项,
创建:ds_选项,
parameterMap:功能(选项、操作){
选项。操作=操作;
返回剑道。stringify(选项);
}
},
批次:对,
页面大小:10,
对,,
是的,
对,,
模式:{
总计:“总计”,
数据:“数据”,
型号:{
id:“roleID”,
字段:{
roleID:{可编辑:真,可空:假},
sortNo:{验证:{必需:true}},
roleName:{验证:{必需:true}},
罗莱斯塔斯:{},
已分配:{type:'number'}
}
}
},
requestEnd:函数(e){
log('request end of role grid');
},
错误:函数(e){
log('发生错误:'+e.errors);
}
});
函数编辑(){
警报(“编辑”);
}
var grid=$(“#grid”).kendoGrid({
数据源:数据源,
工具栏:[{
文本:“新增",
imageClass:“k-add”,
类名:“k-grid-add”,
图标类:“k图标”,
点击:功能(e){
警报(“添加”);
}
},{
文本:“编辑",
imageClass:“k-edit”,
类名:“a-g-e”,
图标类:“k图标”,
},{
文本:“删除",
imageClass:“k-delete”,
类名:“a-g-d”,
图标类:“k图标”
},{
模板:$(“#fts”).html()
}],
高度:“100%”,
pageable:对,
栏目:[
{字段:“roleID”,标题:角色编号“,可见:false},
{字段:“sortNo”,标题:排序号"},
{字段:“roleName”,标题:角色名称"},
{
字段:“roleStatus”,
标题:“角色状态",
可过滤:{
用户界面:状态过滤器
}
},
{字段:“已分配”,标题:已分配用户数"}
],
可编辑:“弹出”,
可调整大小:正确,
可选:“行”,
可排序:是的,
可过滤:{
额外:错,
信息:{
信息:“查询条件:“,//设置筛选菜单顶部的文本
过滤器:“查询“,//设置“过滤器”按钮的文本
清除:“清除“,//设置“清除”按钮的文本
//过滤布尔数时
isTrue:“是“,//设置“isTrue”单选按钮的文本
isFalse:“否“,//设置“isFalse”单选按钮的文本
//更改过滤器菜单的“和”和“或”的文本
及∶且",
或:或"
},
操作员:{
//“字符串”类型列的筛选菜单
字符串:{
等式:“等于",
neq:“不等于",
开始使用:“以……开始",
包含:“包含……",
endswith:“以……结束"
},
//“数字”类型列的筛选菜单
编号:{
等式:“等于",
neq:“不等于",
gte:“大于等于",
gt:“大于",
lte:“小于等于",
lt:“小于"
},
//“日期”类型列的筛选菜单
日期:{
等式:“等于",
neq:“不等于",
gte:“大于等于",
gt:“大于",
lte:“小于等于",
lt:“小于"
},
//外键值的筛选菜单
枚举:{
等式:“等于",
neq:“不等于"
}
},
},
可导航:false,
可重定额:对,
列菜单:{
信息:{
排序:升序排列",
下流:“降序排列",
过滤器:“过滤条件",
列:“选择列"
}
}
}).数据(“kendoGrid”);
功能状态过滤器(ele){
ele.kendoDropDownList({
dataTextField:“文本”,
dataValueField:“值”,
数据源:[{text:]正常,值:“1”},{text:停用,值:“2”}],
选项标签:“--选择值--”
});
}
$('a-g-e','#grid').bind('click',函数(e){
grid.editRow(grid.select());
});
$('a-g-d','#grid').bind('click',函数(e){
grid.removeow(grid.select());
});
.k-下拉式包装{
底部边距:2倍
}
每次单击添加
或编辑
按钮时,默认弹出窗口都会显示“更新”“按钮;当我完成编辑并单击update
按钮时,修改会立即转到服务器。我怎样才能让它只保存对本地数据源的更改,而只在用户单击“保存”按钮时将更改发送到服务器
在Kendoui网站上的批量编辑示例中,我发现如果更改包括创建、更新和
grid.editRow(grid.select());