0

10 個のフィールドを持つデータソースにバインドされたグリッドがあり、そのすべてがチェックボックスです。グリッドではポップアップ編集が有効になっています。

少なくとも 1 つのチェックボックスがオンになっていることを (送信前に) チェックする検証を追加したいと考えています。この検証を追加するにはどうすればよいですか?

すべての例は、フィールドごとの検証を示していますが、行全体の検証が必要です。

UPDATE SaveChanges は機能しませんでしたが、保存は機能しました。

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 に答える