2016-03-23 10 views
0

以下のコード構造で挿入または更新中に重複値の検証を行う方法はありますか?データソースからの挿入または更新中に重複する値を防止する

作成および更新イベントの前にグリッドに重複したレコードが存在することを検証するために、どこに追加することができますか?

事前にガイドをお寄せいただきありがとうございます。

var ds = new kendo.data.DataSource({   
     transport : { 
      read : { 
       url : 'readAttribute/', 
       dataType : 'json', 
       type : 'POST', 
       complete : function(e) { } 
      }, 
      create : { 
       url : 'save/', 
       dataType : 'json', 
       type : 'post', 
       contentType : 'application/json', 
       complete : function(e) { 
        $('#dataGrid').data('kendoGrid').dataSource.read(); 
       } 
      }, 
      update : { 
       url : 'update/', 
       dataType : 'json', 
       type : 'post', 
       contentType : 'application/json', 
       complete : function(e) { 
        $('#dataGrid').data('kendoGrid').dataSource.read(); 
       } 
      }, 
      destroy : { 
       url : 'delete/', 
       dataType : 'json', 
       type : 'post', 
       contentType : 'application/json', 
       complete : function(e) { 
        $('#dataGrid').data('kendoGrid').dataSource.read(); 
       } 
      }, 
      parameterMap : function(options, operation) { 
       if ((operation == 'create' || operation == 'update') && options.models) { 
        var valueData = options.models; 
        for (var i = 0; i < valueData.length; i++) { 
         valueData[i]['valTypeId'] = $("#valTypeDropDown").data("kendoDropDownList").value(); 
        } 

        var valFullData = {}; 
        valFullData['val_data'] = valueData; 
        valFullData['val_type_id'] = $("#valTypeDropDown").data("kendoDropDownList").value(); 

        return kendo.stringify(valFullData); 
       } 

       if (operation == 'destroy') { 
        return kendo.stringify(options.models); 
       } 

       if (operation == 'read') { 
        return { 
         valTypeId : $("#valTypeDropDown").data("kendoDropDownList").value() 
        }; 
       } 
      } 
     }, 
     batch : true, 
     pageSize : com.babysister.client.Configuration.Constants.ListConfig.pageSize, 
     sortable : true, 
     scrollable : true, 
     schema : { 
      model : { 
       id : "id", 
       fields : { 
        id : { 
         type : "number" 
        }, 
        name : { 
         type : "string", 
         validation: { 
          required: { message: "Name is required!" } 
         } 
        }, 
        valTypeId : { 
         type : "number" 
        } 
       } 
      } 
     } 
    }); 

答えて

0

あなたが示されているDataSourceとは反対に、剣道グリッド自体にeditイベントを使用したいと思います。サンプルコードhereeditイベントを購読する)があります。

+0

こんにちは、編集イベントは、データが正しく読み込まれる前に行うのですか?サーバー側に返信する前に、作成イベントまたは更新イベントをクリックした後で検証できますか? – Chang

+0

docs: 'ユーザがデータ項目を編集または作成したときに起動します.'これにより、グリッドに入力されたデータをチェックしてデータが重複していないかどうかを確認できますサーバーに送信します。 – CodingGorilla

+0

ya ..しかし、ユーザーが値を挿入/変更した後に検証できるという考えはありますか?共有するリンクから、ユーザーが新しい値を挿入する前に、同じ列の重複した値を検証するのには適していません。 – Chang

関連する問題