2017-09-26 2 views
1

lorsque j'ouvre l'éditeur dans l'interface utilisateur de la grille de kendo, une erreur se produit comme ci-dessous.erreur datepicker se produit lors de l'ouverture de l'éditeur dans la grille de kendo UI

Uncaught TypeError: e.indexOf is not a function ..kendo.all.js:1179

if (value && value.indexOf('/D') === 0) { 
    date = dateRegExp.exec(value); 
    if (date) { 
     date = date[1]; 
     tzoffset = offsetRegExp.exec(date.substring(1)); 
     date = new Date(parseInt(date, 10)); 
     if (tzoffset) { 
      tzoffset = parseMicrosoftFormatOffset(tzoffset[0]); 
      date = kendo.timezone.apply(date, 0); 
      date = kendo.timezone.convert(date, 0, -1 * tzoffset); 
     } 
     return date; 
    } 
} 

Je suppose que cela est un problème de liaison.

Voici mon extrait de code.

  1. schéma de source de données.

    schema : { 
         model : { 
          id : "cid", 
          fields : { 
           cid : { 
            type : "number" 
           }, 
    
           meainInstDtm : { 
            type : "datetime" 
           }, 
    
          } 
         } 
    
  2. grille kendo

    $("#grid").kendoGrid({ 
        dataSource : dataSource, 
        columns : [ { 
         field : "cid", 
         title : "CID" 
        }, { 
         field : "meainInstDtm", 
         title : "meainInstDtm",  
         width: 150, 
         editor: dateTimeEditor, 
         attributes: { 
          style: "text-align: center;" 
         } 
        }, { 
         command: [{name: 'edit'}, { name: 'destroy'}], title: " ", width:"180px", filterable:false 
        }], 
         editable: "popup" 
         }) 
    
  3. de dateTimeEditor

    function dateTimeEditor(container, options) { 
         $('<input data-text-field="' + options.field + '" data-value-field="' + options.field + '" data-bind="value:' + options.field + '" data-format="' + options.format + '"/>') 
         .appendTo(container) 
         .kendoDateTimePicker({}); 
        } 
    

Je ne sais pas quel est le problème. Aidez moi.

+0

Où l'instruction if est-elle appelée? Vérifiez le dojo que j'ai fait ici et voyez si vous pouvez reproduire le problème: https://dojo.telerik.com/eVoNa/2 – MattOG

+0

@MattOG Le code en haut est kendo.js. Je n'appelle pas l'instruction if. –

+0

Pouvez-vous fournir un [jsFiddle] (https://jsfiddle.net/) que nous pouvons tester? –

Répondre

0

J'ai modifié le type de schéma en date et ajouté des conditions à l'intérieur de l'événement d'édition. Cette jsFiddle fonctionne pour moi.

+0

lors de la modification du type 'datetime' du type' date', la même erreur se produit ... –

+0

Ici: http://docs.telerik.com/kendo-ui/api/javascript/data/model#methods-Model. define Indique que le type doit être une date et non une date: options.fields.fieldName.type Chaîne Spécifie le type du champ. Les options disponibles sont "string", "number", "boolean", "date" et "object". La valeur par défaut est "chaîne". – MattOG

+0

Essayez ceci [http://jsfiddle.net/v1e4kung/2/](http://jsfiddle.net/v1e4kung/2/). Je n'ai pas rencontré l'erreur. –