2016-05-22 14 views
0

Ich habe Kendo Gitter mit Server zu filtern, wenn ich auf das Filtern des Datumsspalte klicken, wird der Server die Datumswert als Standard ein Empfang wie unterWie ändert man das Kendo-Standard-Datumsformat in das SQL-Format, wenn das Gitter auf dem Server gefiltert wird?

Di 3. Mai 2016 00:00:00 GMT + 0400 (Arabian Standard Time) ich weiß, wie das Datum Wert auf Aktualisierung zu ändern, wie unten

parameterMap: function(data, type) { 

if (type !== "read" && data.models) { 
            //return {models: kendo.stringify(options.models)}; 
            var d = new Date(data.models[0].joinDate); 

            data.models[0].joinDate = kendo.toString(new Date(d), "yyyy-MM-dd"); 

            console.log("date is:"+data.models[0].joinDate); 
    // here the server is receiving the join date as yyyy-MM-dd 

            return data; 
           } 
       } 
    else 
    { 
     // it is showing an error if i do like that 
     // var d = new Date(data.models[0].joinDate); 
     // data.models[0].joinDate = kendo.toString(new Date(d), "yyyy-MM-dd"); 
     return data; 

    } 

nun meine Frage ist, was die Funktion ist, der ausgelöst wird, wenn ich auf Filter Taste des Gitters klicken, die dort in ich das analysieren kann Datum in SQL-Format vor dem Senden an den Server. Ich habe versucht, es in der Lesefunktion zu tun, wie oben erwähnt, aber es zeigt einen Fehler an.

Antwort

0

Ich denke, ich löse es nach langer Suche, und diese Antwort für jemanden, der wie ich sucht. Um den Filterfeldwert vom standardmäßigen Datum-Uhrzeit-Format in das SQL-Format vor dem Senden an den Server zu ändern, müssen wir den Wert dieses Feldes im Filterkonfigurationsobjekt der Datenquelle für das Raster ändern.

, um die Filterkonfiguration Objekt zu erhalten, können wir innerhalb transport.parameterMap erhalten wie unten

   parameterMap: function(data, type) { 
           if (type !== "read" && data.models) { 
            //return {models: kendo.stringify(options.models)}; 
            var d = new Date(data.models[0].joinDate); 

            data.models[0].joinDate = kendo.toString(new Date(d), "yyyy-MM-dd"); 

            console.log("joinDate in sql frmat for any update on grid:"+data.models[0].joinDate); 

            return data; 
           } 
           else 
           { 
            // get currently applied filters from the Grid is data.filter. 
            var currFilterObj = data.filter; 
            var currentFilters = currFilterObj ? currFilterObj.filters : []; 

            if (currentFilters && currentFilters.length > 0) { 
            for (var i = 0; i < currentFilters.length; i++) { 

             if (currentFilters[i].field == "joinDate") 
             { 
              var d = new Date( currentFilters[i].value); 
              currentFilters[i].value = kendo.toString(new Date(d), "yyyy-MM-dd"); 

             console.log("Now joinDate value is in sql format "+currentFilters[i].value); 
             } 

            } 
           } 

            return data; 

           }