2015-01-30 11 views
7

Nella mia griglia di kendo voglio cambiare il formato della data nel filtroKendoUI griglia data di filtro formato

Es: 2015/01/30 a 30 gen, 2015

ho già modificare la data formato del Data inizio

   field: "StartDate", 
       title: "Start Date", 
       width: 30, 
       format: "{0:MMM dd, yyyy}", 
       parseFormats: "{0:MM/dd/yyyy}", 
       headerTemplate: '<label for="check-all"><b>Start Date</b></label>', 
       headerAttributes: { style: "text-align: center;" }, 
       attributes: { style: "text-align:center !important;padding-right: 25px;" } 

codice nel mio filtrabile

filterable: { 
       extra: false, 
       operators: { 
        string: { 
         startswith: "Starts with", 
         eq: "Is equal to" 
        } 
       } 
      }, 

Per screenshot see this

Grazie

risposta

10

È necessario definire filterable.ui come una funzione in cui si crea il DatePicker e impostare la desiderata format:

{ 
    field: "StartDate", 
    title: "Start Date", 
    width: 30, 
    format: "{0:MMM dd, yyyy}", 
    parseFormats: "{0:MM/dd/yyyy}", 
    headerTemplate: '<label for="check-all"><b>Start Date</b></label>', 
    headerAttributes: { style: "text-align: center;" }, 
    attributes: { style: "text-align:center !important;padding-right: 25px;" }, 
    filterable : { 
     ui: function (element) { 
      element.kendoDatePicker({ 
       format: "MMM dd, yyyy" 
      }); 
     } 
    } 
}, 

Controllare il seguente frammento:

$(document).ready(function() { 
 
    $("#grid").kendoGrid({ 
 
    dataSource: { 
 
     type: "odata", 
 
     transport: { 
 
     read: "http://demos.telerik.com/kendo-ui/service/Northwind.svc/Orders" 
 
     }, 
 
     schema: { 
 
     model: { 
 
      fields: { 
 
      OrderID: { type: "number" }, 
 
      Freight: { type: "number" }, 
 
      ShipName: { type: "string" }, 
 
      OrderDate: { type: "date" }, 
 
      ShipCity: { type: "string" } 
 
      } 
 
     } 
 
     }, 
 
     pageSize: 20, 
 
     serverPaging: true, 
 
     serverFiltering: true, 
 
     serverSorting: true 
 
    }, 
 
    height: 550, 
 
    filterable: true, 
 
    sortable: true, 
 
    pageable: true, 
 
    columns: [ 
 
     { 
 
     field:"OrderID", 
 
     filterable: false 
 
     }, 
 
     { 
 
     field: "OrderDate", 
 
     title: "Order Date", 
 
     format: "{0:MMM dd, yyyy}", 
 
     parseFormats: "{0:MM/dd/yyyy}", 
 
     headerTemplate: '<label for="check-all"><b>Start Date</b></label>', 
 
     headerAttributes: { style: "text-align: center;" }, 
 
     attributes: { style: "text-align:center !important;padding-right: 25px;" }, 
 
     filterable : { 
 
      ui: function (element) { 
 
      element.kendoDatePicker({ 
 
       format: "MMM dd, yyyy" 
 
      }); 
 
      } 
 
     } 
 
     }, 
 
     "ShipName" 
 
    ] 
 
    }); 
 
});
html { font-size: 12px; font-family: Arial, Helvetica, sans-serif; }
<link rel="stylesheet" href="http://cdn.kendostatic.com/2014.3.1316/styles/kendo.common.min.css" /> 
 
<link rel="stylesheet" href="http://cdn.kendostatic.com/2014.3.1316/styles/kendo.default.min.css" /> 
 
<script src="http://cdn.kendostatic.com/2014.3.1316/js/jquery.min.js"></script> 
 
<script src="http://cdn.kendostatic.com/2014.3.1316/js/kendo.all.min.js"></script> 
 

 
<div id="grid"></div>

+1

funziona! .thanks bro – nojla

+0

Come posso cambiare una cultura nel mio filtro, datePicker? –

7

La soluzione fornita funziona correttamente con "Menu filtri" predefiniti, ma non funziona per il filtro: {modalità: "riga"}. In tal caso dovresti usare il modello.

$("#grid").kendoGrid({ 
     dataSource: { 
      type: "odata", 
      transport: { 
       read: "http://demos.telerik.com/kendo-ui/service/Northwind.svc/Orders" 
      }, 
      schema: { 
       model: { 
        fields: { 
         OrderID: {type: "number"}, 
         Freight: {type: "number"}, 
         ShipName: {type: "string"}, 
         OrderDate: {type: "date"}, 
         ShipCity: {type: "string"} 
        } 
       } 
      }, 
      pageSize: 20, 
      serverPaging: true, 
      serverFiltering: true, 
      serverSorting: true 
     }, 
     height: 550, 
     // filterable: true, 
     sortable: true, 
     pageable: true, 
     columns: [ 
      { 
       field: "OrderID", 
       filterable: false 
      }, 
      { 
       field: "OrderDate", 
       title: "Order Date", 
       format: "{0:MMM dd, yyyy}", 
       parseFormats: "{0:MM/dd/yyyy}", 
       headerTemplate: '<label for="check-all"><b>Start Date</b></label>', 
       headerAttributes: {style: "text-align: center;"}, 
       attributes: {style: "text-align:center !important;padding-right: 25px;"}, 
       filterable: { 
        cell: { 
         template: function (args) { 
          args.element.kendoDatePicker({ 
           format: "MMM dd, yyyy" 
          }); 
         } 
        } 
       } 
      }, 
      "ShipName" 
     ], filterable: {mode: 'row'} 
    }); 
+1

Semplicemente perfetto grazie per il tuo tempo e impegno, mi hai aiutato molto al mio lavoro –

0

Ho ricevuto questa risposta dal supporto di Telerik per KendoUI Professional 2016.3.1118. Aggiungi questo alla tua rete:

columnMenu: true, 
columnMenuInit: function (e) { 
    var menu = e.container.find(".k-menu").data("kendoMenu"); 
    menu.bind('activate', function(ev) { 
     if(ev.item.is(':last-child')) { // use 'span.k-dropdown.k-header' if the column is locked 
      // if an element in the submenu is focused first, the issue is not observed (menu disappearing) 
      ev.item.find('span.k-dropdown.k-header').first().focus();  

      // column field is of type "date" 
      if(e.field === "OrderDate") { 
       // accessing the DatePickers and setting the custom format 
       var datePickerElements = ev.item.find('[data-role="datepicker"]'); 
       datePickerElements.each(function(idx, input) { 
        var datePicker = $(input).data('kendoDatePicker'); 
        datePicker.setOptions({ 
         format: 'MMM dd, yyyy' 
        }); 
       }); 
      } 
     } 
    }); 
},