2012-12-11 4 views
0

나는 지금 문제가 있습니다. 편집 가능한 필드가있는 검도 UI 그리드가 2 개의 날짜 유형으로되어 있습니다. 지금까지는 모든 것이 잘 작동합니다. 나에게 문제가되는 것은 시작일과 종료일을 확인하는 것입니다. 날짜는 항상 종료 날짜보다 작거나 같아야합니다. 이 두 필드의 유효성을 검사해야합니다. 아이디어가있다 누군가가 그것을 감사 enter image description here검도 그리드 2 개의 datepicker의 유효성 검사

dataSource = new kendo.data.DataSource({ 
         transport: { 
          read: { 
           url: controller + "/read", 
           type: "GET" 
          }, 
          update: { 
           url: controller + "/update", 
           type: "POST", 
           dataType: "json" 

           //data: { model: "prueba" } 
          }, 
          destroy: { 
           url: controller + "/delete", 
           dataType: "json", 
           type: "POST" 
          } 
         }, 
         batch: true, 
         //pageSize: 10, 
         schema: { 
          model: { 
           id: "id_POSPlanningOpe", 
           fields: { 
            select: { type: "boolean", editable: false }, 
            id_POSPlanningOpe: { editable: false, nullable: true }, 
            codPdv: { editable: false }, 
            nombrePdv: { editable: false }, 
            regionPdv: { editable: false }, 
            zonapdv: { editable: false }, 
            fecha_Inicio: { type: "date", editable: true }, 
            fecha_Fin: { type: "date", editable: true }, 
            estado: { editable: false } 
           } 
          } 
         } 
        }); 
        $("#grid").kendoGrid({ 
         selectable: "multiple", 
         sortable: { 
          mode: 'single', 
          allowUnsort: false 
         }, 
         dataSource: dataSource,       
         height: 500,        
         toolbar: [{ name: "save", text: "Grabar" }, { name: "cancel", text: Cancelar"}], 
         columns: [ 
          { title: "<span></span>", width: "20px", template: '<input type="checkbox" name="CheckRow" value="#= id_POSPlanningOpe #"></input>' }, 
          { field: "id_POSPlanningOpe", title: "<span class='Cabecera'>NRORUTA</span>", width: 80 }, 
          { field: "codPdv", title: "<span class='Cabecera'>CODIGO PDV</span>", width: 100 }, 
          { field: "nombrePdv", title: "<span class='Cabecera'>NOMBRE</span>" }, 
          { field: "regionPdv", title: "<span class='Cabecera'>REGION</span>" }, 
          { field: "zonapdv", title: "<span class='Cabecera'>ZONA</span>" }, 
          { field: "fecha_Inicio", title: "<span class='Cabecera'>FECHA INICIO</span>", template: '#= kendo.toString(fecha_Inicio,"dd/MM/yyyy") #', width: 100 }, 
          { field: "fecha_Fin", title: "<span class='Cabecera'>FECHA FIN</span>", template: '#= kendo.toString(fecha_Fin,"dd/MM/yyyy") #', width: 100 }, 
          { field: "estado", title: "<span class='Cabecera'>ESTADO</span>", width: 80 }, 
          { command: ["edit"], title: "&nbsp;", width: "100px"}], 
         editable: 'inline' 

        }); 
+1

는 [여기] (HTTP 날짜 유효성 검사에 대한 KendoUI 데모가 /demos.kendoui.com/web/datepicker/rangeselection.html). 너 해봤 니? 나는 당신의 사건이'그리드 (grid) '에 있다는 것을 알고 있지만 그렇게 다르지 않아야한다. – OnaBai

답변

2

당신은 표시 here 같은 사용자 지정 유효성 검사 규칙을 구현하기 위해 시도 할 수를 확인합니다.

아니면 값이 유효한 상태에 있고 그렇지 않은 경우는 잘못이 무엇인지를 사용자에게 알려 폐쇄에서 그리드를 방지 할 수 있는지 확인하기 위해 그리드의 edit 이벤트를 사용할 수 있습니다.

0

나는이 기능을 사용하여 이런 짓을했는지 :

(function ($, kendo) { 
    $.extend(true, kendo.ui.validator, { 
     rules: { // custom rules 
      startdatetimevalidation: function (input, params) { 
       if ($(input).val() && $(input).attr('id') == "StartDateTime") { 
        if ($('#EndDateTime').val() && $(input).getKendoDateTimePicker().value() > $('#EndDateTime').getKendoDateTimePicker().value()) { 
         return false; 
        } 
       } 
       return true; 
      }, 
      endatetimevalidation: function (input, params) { 
       if ($(input).val() && $(input).attr('id') == "EndDateTime") { 
        if ($('#StartDateTime').val() && $(input).getKendoDateTimePicker().value() < $('#StartDateTime').getKendoDateTimePicker().value()) { 
         return false; 
        } 
       } 
       return true; 
      } 
     }, 
     messages: { 
      startdatetimevalidation: function (input) { 
       return "Start Date can't be greater than End Date."; 
      }, 
      endatetimevalidation: function (input) { 
       return "End Date can't be smaller than Start Date."; 
      } 
     } 
    }); 
})(jQuery, kendo); 

희망이 도움이! 이 게시물은 오래 알고,하지만 어쩌면 사람도이 필요합니다 ..

이 페이지를 참조하십시오 더 많은 정보가 필요한 경우 :/: http://demos.telerik.com/aspnet-mvc/grid/editing-custom-validation

관련 문제