2016-09-06 5 views
0

私は剣道のUIグリッドを持っています。その中に2列のStartDateとEndDateがあります。 インライン編集中に、StartDateをEndDateより大きくしないでください。 私はStartDateフィールドのカスタム検証でこれをやっています。 しかし、var StartDateはnull値が割り当てられています。剣道UIグリッドの2列の日付を比較するには?

model: { 
       id: "BusinessAreaDivisionMappingId", 
       fields: { 
        BusinessAreaDivisionMappingId: { type: "number", editable: false, nullable: false }, 

        StartDate: { 
         from: "BusinessAreaDivisionMappingEntity.StartDate", type: "date", 
         validation: 
          { 
           required: true, 
           dateComparisonValidation: function (input) { 
            debugger; 
            if (input && (input.attr("name") == "StartDate"|| input.attr("name") == "EndDate")) { 
             input.attr("data-dateComparisonValidation-msg", "Start Date cannot be more than End Date"); 
             var startDate = input.closest(".k-edit-form-container").find("[name='StartDate']").data("kendoDatePicker"); 
             var endDate = input.closest(".k-edit-form-container").find("[name='EndDate']").data("kendoDatePicker"); 
             if (Date(startDate) > Date(endDate)) { 
              return false; 
             } 
            } 
            return true; 
           } 
          } 
        }, 
        EndDate: { from: "BusinessAreaDivisionMappingEntity.EndDate", type: "date" } 
       } 
      } 

答えて

1

完全に例を作業UPDATEここ

http://dojo.telerik.com/IqeNA


私はそれを見て比較し、無効な値を選択することはできませんし、ユーザーexpirienceのために本当に良いでしょうと思います有効でない値がそれらを再選択すること。

あなたは日付とあなたの列のカスタムエディタを追加していることに同意する場合:

var dateEditor = function (container, options) { 
var input = $('<input />'); 

input.appendTo(container) 
    .kendoDatePicker({ 
    format: "dd.MM.yyyy" 
    }); 
var datePicker = input.data("kendoDatePicker"); 
    switch (options.field) { 
    case "startDate": 
     if (options.model.finishDate) { 
     datePicker.max(options.model.finishDate); 
     } 
     break; 

    case "finishDate": 
     if (options.model.startDate) { 
     datePicker.min(options.model.startDate); 
     } 
     break; 
    } 
}; 

読むには、カスタムエディタについて、ここで

http://docs.telerik.com/kendo-ui/api/javascript/ui/grid#configuration-columns.editor

あなたはインラインエディタの編集者を追加することでトラブルをお持ちの場合その記事を読む

Kendo Grid using inline editing and custom editor dropdown control

+0

これは動作しません。 ステップ1:9月6日の開始日を選択します。 ステップ2:5日目の終了日を選択できます。 – Anand

+0

何がうまくいかない?あなたにはエラーがありますか?それは私が生産で使用する完全に実用的な解決策です –

+0

あなたのケースでは、大文字で始まるモデルフィールドの名前を付けました。 'StartDate'と 'startDate'。最初にデバッグしてみて、名前をモデル –

関連する問題