or
var messages = new kendo.data.DataSource({ transport: { read: function(operation) { var cachedData = localStorage.getItem("cachedMessages"); if (cachedData != null || cachedData != undefined) { operation.success(JSON.parse(cachedData)); } else { operation.success(getMessages()); } } } });<ul id="messages-list-view" data-role="listview" data-source="messages" data-template="message-template" data-pull-to-refresh="true"></ul>$("#" + chartDiv).kendoChart({ title: { text: chartName + " " + chartLabel }, legend: { visible: false, position: "bottom" }, seriesDefaults: { type: "donut", startAngle: 150 }, theme: defaultTheme, series: [{ name: "Prior Period", overlay: { gradient: "none" }, categoryField: "Value.Description", field: "Value.Value", tooltip: { visible: true, template: "${dataItem.Value.Description} - ${dataItem.Value.FormattedValue} - Prior Period" }, data: jsonPrior }, { name: labelDateRange, overlay: { gradient: "none" }, categoryField: "Value.Description", field: "Value.Value", tooltip: { visible: true, template: "${dataItem.Value.Description} - ${dataItem.Value.FormattedValue} - " + labelDateRange }, data: jsonData, labels: { template: "${dataItem.Value.Description} - ${dataItem.Value.FormattedValue}", position: "outsideEnd", font: "10px Arial,Helvetica,sans-serif", align: "circle", visible: true, distance: 15, background: "transparent" }, }] });@(Html.Kendo().Grid().Name("grvInvSplit") .TableHtmlAttributes(new { style = "table-layout: fixed;" }) .ClientDetailTemplateId("ViewGridItemDetails") .DataSource(dataSource => dataSource.Ajax() .Batch(false) .ServerOperation(false) .Read(...) .Create(..) .Update(..) .Model(model => model.Id(p => p.GridRowNum)) .Model(model => model.Field(p => p.GridRowNum).DefaultValue(-1)) .Events(events => events.RequestEnd("onGridRqstEnd") .Error("onGridError")) ) .Columns(cols => { ... ... }) .EnableCustomBinding(false) .Selectable() .Pageable() .Resizable(resizing => resizing.Columns(true)) .Editable(editing => editing.Mode(Kendo.Mvc.UI.GridEditMode.InLine) .DisplayDeleteConfirmation(false) ) .Events(events => events.DataBound("onGridDataBound") .Save("onGridSave") .Edit("onGridEdit") .Change("onGridChange") .DetailExpand("gridViewChrgDetailExpand") ) ) <script id="ViewGridItemDetails" type="text/x-kendo-template"> <div id="ViewGridItemDetailsRow_#= GridRowNum #"> Loading ... </div></script><script>gridViewChrgDetailExpand: function (e) { $("#ViewGridItemDetailsRow_" + selectedGridRow.GridRowNum).html(<html>);}</script>