0

我有一个配置为批量编辑的 Kendo UI Grid。我希望实现的是在调用网格的 CRUD 函数之前进行网格级别的自定义验证。所以假设网格显示了一个员工列表,并且用户添加了两个具有相同 EmployeeID 的员工;然后单击“保存更改”,网格应调用自定义验证器规则(例如,我们有一个规则来检查所有员工 ID 是否都是唯一的)。根据验证结果,网格应该决定是否调用它的创建/更新/销毁函数。

如果有人能回应我的担忧,我将不胜感激。

我的剑道网格:

<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"
        }
    };

我指的是以下链接:

http://jsfiddle.net/davidsalahi/qMRBc/

http://demos.telerik.com/kendo-ui/validator/angular

4

2 回答 2

1

如果您正在进行批量编辑并且您想检查重复项,我建议您使用saveChanges事件,您可以在其中检查e.sender.dataSource并在需要时停止保存更改

saveChanges: function(e) {
    if (!confirm("Are you sure you want to save all changes?")) {
       e.preventDefault(); 
    }
于 2015-12-09T18:21:13.947 回答
0

在这种情况下,您需要在绑定到网格的 DataSource 中创建自定义验证。例如,您可以执行以下操作:

employees = new kendo.data.DataSource({
   schema: {
      model: {
         fields: {
            EmployeeID: {
               validation: {
                  employeeidvalidation: function(input){
                     if(input.is('[name="EmployeeID"]'){
                        //Implement custom validation here...
                     }
                     return true;
                  }
               }
            }
         }
      }
   }
});
于 2015-12-09T16:41:03.893 回答