0

我有一个绑定到具有 10 个字段的数据源的网格,所有这些字段都是复选框。网格已启用弹出编辑。

我想添加一个验证,检查(在提交之前)至少一个复选框被选中。如何添加此验证?

所有示例都显示了每个字段的验证,而我想要对整行进行验证。

UPDATE SaveChanges 对我不起作用,但 save 起作用。

save:function(e) {
        if(e.model){
                    var selected = false;
                    for (var key in e.model) {
          if (e.model.hasOwnProperty(key)) {
                        if(typeof e.model[key] == "boolean"){
                          if(e.model[key]){
                            selected = true;                                                                         
                            break;
                          }
                        }
                      }
                    } 
                    if(!selected){                                                                                                       
                      e.preventDefault();
        }
}               
4

1 回答 1

0

是的,验证不是那么灵活。 选项 1: 点击网格的saveChanges事件并遍历数据源数据项:

 saveChanges: function(e) {
       var data = yourDatasource.data(); // this.dataSource.data()
       for (var i = 0; i < data.length; i++) {
            if (!IsValid(data[i])) {
                e.preventDefault();
                // don't submit
            }
       }

},

选项 2: 在添加到网格的每个复选框上附加 onclick 事件并计算点击次数。如果您计算的点击次数少于行数,则验证失败。这种验证也将在“saveChanges”事件中处理。

于 2013-09-11T13:31:07.993 回答