私は剣道で剣道のグリッドを持っています.2つの列があります:ユーザー名と役割。編集時の役割の列はドロップダウンです。グリッドにはバリデーションがあります。私は同じ役割を持つユーザー名を持つことはできません。シナリオが機能しなくなるまで、私はすべての神を見ています:すでに存在するユーザー名とロールを設定すると、検証は(ここまではOKです)、その後は他のロール(有効)を選択するとレコードが追加されますユーザー名は削除されます。なぜか分からない。私はこの例から始めました:enter link description here(thisもあります) enter link description hereに私のコードを設定しようとしましたが、なぜロードされないのかわかりません。ここで剣道のドロップダウンでグリッドのテキストを消去した後、それを修正する方法は?
は私のコードです:
var roles = [
{role: "SYSTEM_USER", roleId: 1},
{role: "COMPONENT_EDITOR", roleId: 2},
{role: "CHANGE_REQUEST_EDITOR", roleId: 3}
];
$(document).ready(function() {
var permissionDataSource = new kendo.data.DataSource({
dataType: "json",
data: this.model.get("permissions"),
schema: {
model: {
id: "userName",
fields: {
userName: {
type: "text",
editable: true,
validation: {
required: true,
roleIsUniqueValidation: function (input){
if (input.is("[name='userName']")) {
var currentUserName = input.val();
var currentRole = $($(this.element.children()[1]).children()).children().text();
var currentId = this.element.data("uid");
var elements = $("#kendoGrid").data().kendoGrid.dataSource.view();
for (var i = 0; i < elements.length; i++) {
var el = elements[i];
// exclude from checks the current row
if (el.uid != currentId) {
// check if there are docs with the same type and number combination
if (el.userName == currentUserName && el.role == currentRole) {
input.attr("data-roleIsUniqueValidation-msg", "Role already exists for this user");
return false;
}
}
}
}
return true;
}
}
},
role: {
defaultValue: {role: "SYSTEM_USER", roleId: 1}
}
}
}
}});
// transform grid to kendogrid
$("#kendoGrid").kendoGrid({
dataSource: permissionDataSource,
sortable: true,
scrollable: true,
height:300,
dataBound: function(){
thisView._resizeKendoGrid();
},
editable: {
mode: "inline"
},
columns: [{
field: "userName",
title: "Username"
}, {
field: "role",
title: "Role",
template: "#=role#",
width: 240,
editor: rolesDropDownEditor
},
{
title: "#",
command: [{
name: "edit",
text: { update: "Add"}
},{
name: "destroy"
}
],
hidden: true
}]
});
}
function categoryDropDownEditor(container, options) {
$('<input data-text-field="CategoryName" data-value-field="CategoryID" data-value-field="CategoryName" data-bind="value:' + options.field + '"/>').appendTo(container).kendoDropDownList({
autoBind: false,
dataSource: {
data: categories
}
});
}
私が間違ってやっている正確に何を?私はテンプレートだと思いますが、私はよく分かりません。
ここで、rolesDropDownEditor – Rajdeep