如何在网格级别实现 Kendo UI 自定义验证器
How to implement Kendo UI Custom validator on grid level
我有一个 Kendo UI 网格配置为批量编辑。我希望实现的是在调用网格的 CRUD 函数之前进行网格级别的自定义验证。所以假设网格显示了一个员工列表,并且用户添加了两个具有相同 EmployeeID 的员工;然后在单击 'Save Changes' 时,网格应调用自定义验证器规则(假设我们有一个规则来检查是否所有员工 ID 都是唯一的)。根据验证结果,网格应决定是否调用它的 create/update/destroy 函数。
如果有人能回应我的问题,我将不胜感激。
我的Kendo网格:
<div id="allocGrid" kendo-validator="ctrl.allocationGridValidatorRules" kendo-grid k-options="ctrl.allocationGridOptions(dataItem)"></div>
验证规则:
ctrl.allocationGridValidatorRules = {
rules: {
customRule1: function (input) {
// this rule may check if all the employee Id's in the grid are unique
}
},
messages: {
customRule1: "Enter a unique Employee Id"
}
};
我指的是以下链接:
在这种情况下,您需要在绑定到您的网格的数据源中创建自定义验证。例如,您可以这样做:
employees = new kendo.data.DataSource({
schema: {
model: {
fields: {
EmployeeID: {
validation: {
employeeidvalidation: function(input){
if(input.is('[name="EmployeeID"]'){
//Implement custom validation here...
}
return true;
}
}
}
}
}
}
});
如果您正在进行批量编辑并且想检查重复项,我建议您使用 saveChanges 事件,您可以在其中检查 e.sender.dataSource 并在需要时停止保存更改
saveChanges: function(e) {
if (!confirm("Are you sure you want to save all changes?")) {
e.preventDefault();
}
我有一个 Kendo UI 网格配置为批量编辑。我希望实现的是在调用网格的 CRUD 函数之前进行网格级别的自定义验证。所以假设网格显示了一个员工列表,并且用户添加了两个具有相同 EmployeeID 的员工;然后在单击 'Save Changes' 时,网格应调用自定义验证器规则(假设我们有一个规则来检查是否所有员工 ID 都是唯一的)。根据验证结果,网格应决定是否调用它的 create/update/destroy 函数。
如果有人能回应我的问题,我将不胜感激。
我的Kendo网格:
<div id="allocGrid" kendo-validator="ctrl.allocationGridValidatorRules" kendo-grid k-options="ctrl.allocationGridOptions(dataItem)"></div>
验证规则:
ctrl.allocationGridValidatorRules = {
rules: {
customRule1: function (input) {
// this rule may check if all the employee Id's in the grid are unique
}
},
messages: {
customRule1: "Enter a unique Employee Id"
}
};
我指的是以下链接:
在这种情况下,您需要在绑定到您的网格的数据源中创建自定义验证。例如,您可以这样做:
employees = new kendo.data.DataSource({
schema: {
model: {
fields: {
EmployeeID: {
validation: {
employeeidvalidation: function(input){
if(input.is('[name="EmployeeID"]'){
//Implement custom validation here...
}
return true;
}
}
}
}
}
}
});
如果您正在进行批量编辑并且想检查重复项,我建议您使用 saveChanges 事件,您可以在其中检查 e.sender.dataSource 并在需要时停止保存更改
saveChanges: function(e) {
if (!confirm("Are you sure you want to save all changes?")) {
e.preventDefault();
}