Kendo Gridde UTC datetime i göstermek

sql database niz azure üzerinde ise ve uygulamalarınızda kendo grid kullanıyor iseniz, db saati ile griddeki saatin farklı olduğunu görebilirsiniz. grid üzerinde db exact time i göstermek istiyorsanız aşağıdaki code bloğunu uyarlayabilirsiniz.

mvc view tarafında datagride event ekliyoruz

 @(Html.Kendo()
.Grid(Model.Data)
.Name(“Grid”)
.Columns(columns => {
columns.Bound(p => p.FirstName);
columns.Bound(p => p.LastName);
columns.Bound(p => p.Amount).Format(“{0:n2}”);
columns.Bound(p => p.CreatedDateTime).Format(“{0:dd.MM.yy HH:mm}”);
.Pageable(p => p.Refresh(true).PreviousNext(true))
.Sortable()
.EnableCustomBinding(true)
.DataSource(dataSource => dataSource
.Ajax()
.Model(model => model.Id(p => p.Id))
.PageSize(20)
.Total(Model.Total)
.Read(“GetInvoiceList”, “Invoice”)
.Events(e => e.RequestEnd(“onGridRequestEnd”))
))

script tarafında da aşağıdaki kodu ekliyoruz
// KENDO-GRID DateTime UTC Binding

function onGridRequestEnd(e) {
if (e.response.Data && e.response.Data.length) {
var data = e.response.Data;
loopRecords(data);
}}

function loopRecords(data) {
for (var i = 0; i < data.length; i++) {
var item = data[i];
offsetDateFields(item);
}}

function offsetDateFields(obj) {
for (var name in obj) {
var prop = obj[name];
if (typeof (prop) === “string” && prop.indexOf(“/Date(“) == 0) {
obj[name] = prop.replace(/\d+/, function (n) {
var offsetMiliseconds = new Date(parseInt(n)).getTimezoneOffset() * 60000;
return parseInt(n) + offsetMiliseconds;
});
}}}

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s