Kendo ui 剑道UI网格(内联编辑)更新和取消不工作

Kendo ui 剑道UI网格(内联编辑)更新和取消不工作,kendo-ui,kendo-grid,Kendo Ui,Kendo Grid,我通过javascript创建带有数据的网格。当我第一次在任何行上单击“编辑”按钮并单击“更新”按钮时。第一行中的值为空,然后我编辑另一行,我无法更新或取消,这两个按钮都不起作用。 当我刷新,然后单击编辑,然后单击取消,该行已删除,我不知道为什么? 发生了什么事?如何修复 资料 var detail=new Array(); 对于(变量i=1;i

我通过javascript创建带有数据的网格。当我第一次在任何行上单击“编辑”按钮并单击“更新”按钮时。第一行中的值为空,然后我编辑另一行,我无法更新或取消,这两个按钮都不起作用。 当我刷新,然后单击编辑,然后单击取消,该行已删除,我不知道为什么? 发生了什么事?如何修复

资料
var detail=new Array();
对于(变量i=1;i<6;i++){
推({
分数:我,
条件:0,
ValueStart:0,
ValueEnd:0,
});
}
网格
for(变量i=0;i<3;i++){
$(“#GridScoreRangeContent”)。追加(“”);
$(“#scoreRangeGrid”+i)({
数据源:{
数据:详细信息,
批次:对,
模式:{
型号:{
字段:{
分数:{可编辑:false},
条件:{defaultValue:{Value:1,文本:“小于”},验证:{required:true},
ValueStart:{type:“number”,验证:{required:true,min:1},
ValueEnd:{type:“number”,验证:{required:true,min:1},
}
}
}
},
列:[{字段:“分数”,标题:“分数”},
{字段:“条件”,标题:“条件”,编辑器:ScoreRangeDropDownList,模板:“#=条件#”},
{字段:“ValueStart”,标题:“Start”},
{字段:“ValueEnd”,标题:“End”},
{命令:[“编辑”、“销毁”],标题:,宽度:“180px”}
],
可编辑:“内联”
});
}
加载下拉列表
函数ScoreRangeDropDownList(容器、选项){
$.ajax({
url:GetUrl(“Admin/Appr/LoadDropdownlist”),
键入:“post”,
数据类型:“json”,
contentType:'应用程序/json',
传统的:是的,
cache:false,
成功:功能(数据){
$('')
.appendTo(容器)
.kendoDropDownList({
自动绑定:错误,
数据源:数据,
dataTextField:“文本”,
dataValueField:“值”,
});
}
});
}                                    

剑道在保存/更新时似乎依赖于模型ID。因此,在数据源中,必须指定一个id:

model: {
    id: "Id",
    fields: {
        Id: { type: "number" },
        Score: { editable: false },
        Condition: { defaultValue: { Value: 1, Text: "Less than" }, validation: { required: true } },
        ValueStart: { type: "number", validation: { required: true, min: 1 } },
        ValueEnd: { type: "number", validation: { required: true, min: 1 } },
  }
}

dmathisen的建议无疑是重要的,但除此之外,您创建的列必须具有与列名称相等的name属性。您可以再次使用
options.field
的值,如剑道演示页面示例中的代码所示:

// create an input element
var input = $("<input/>");
// set its 'name' to the field to which the column is bound
input.attr("name", options.field);
// append it to the container
input.appendTo(container);
// initialize a Kendo UI Widget
input.kendoDropDownList({
.
.     
//创建一个输入元素
变量输入=$(“”);
//将其“名称”设置为列绑定到的字段
input.attr(“name”,options.field);
//将其附加到容器中
输入。附加到(容器);
//初始化剑道UI小部件
input.kendoDropDownList({
.
.     

制造问题的麻烦。
function ScoreRangeDropDownList(container, options) {
    $.ajax({
        url: GetUrl("Admin/Appr/LoadDropdownlist"),
        type: 'post',
        dataType: 'json',
        contentType: 'application/json',
        traditional: true,
        cache: false,
        success: function (data) {
            $('<input required data-text-field="Text" data-value-field="Value" data-bind="value:' + options.field + '"/>')
                .appendTo(container)
                .kendoDropDownList({
                    autoBind: false,
                    dataSource: data,
                    dataTextField: "Text",
                    dataValueField: "Value",
                });
        }
    });
}                                    
model: {
    id: "Id",
    fields: {
        Id: { type: "number" },
        Score: { editable: false },
        Condition: { defaultValue: { Value: 1, Text: "Less than" }, validation: { required: true } },
        ValueStart: { type: "number", validation: { required: true, min: 1 } },
        ValueEnd: { type: "number", validation: { required: true, min: 1 } },
  }
}
// create an input element
var input = $("<input/>");
// set its 'name' to the field to which the column is bound
input.attr("name", options.field);
// append it to the container
input.appendTo(container);
// initialize a Kendo UI Widget
input.kendoDropDownList({
.
.