Hello Kendo Team,
I'm trying to implement the Grid / Export to Excel feature in Kendo grid, but I can't make it work, here is my js code, hope you can find what I am missing,
(Line 045)
Thanks in advance!
001.var NoFoundMessage = $("#NoFoundMessage");002.var Kendogrid = $("#grid");003.var isOrderById = false;004.(function (MyOrders, $) {005. 006. MyOrders.OrderHistory = (function () {007. 008. var load = function (isLoadingMore) {009. kendo.ui.progress(Kendogrid, true);010. Kendogrid.kendoGrid({011. noRecords: true,012. dataSource: {013. type: "POST",014. transport: {015. read: function (options) {016. if (isOrderById === false) {017. getOrdersDataSource(myOrders.SearchControl.pagingSearch(), options);018. }019. else {020. getOrderByIdDataSource(localStorage.OrderID, options);021. isOrderById = false;022. }023. }024. },025. batch: true,026. schema: {027. type: 'json',028. model: {029. id: "OrderID",030. fields: {031. OrderID: { type: "string" },032. PurchasedBy: { type: "string" },033. ReceivedDate: { type: "date" },034. OrderStatusDesc: { type: "string" },035. HAPOrderStatus: { type: "string" },036. OrderPurpose: { type: "string" },037. PurchaserName: { type: "string" },038. Recipient: { type: "string" },039. VolumePoints: { type: "string" },040. OrderAgain: { type: "string" },041. ViewReceipt: { type: "string" }042. }043. }044. },045. toolbar: ["excel"],046. excel: {047. fileName: "MyOrders.xlsx",048. //proxyURL: "//demos.telerik.com/kendo-ui/service/export",049. filterable: true,050. allPages: true051. },052. pageSize: 10053. },054. groupable: false,055. sortable: true,056. dataBound: onDataBound,057. pageable: {058. refresh: false,059. pageSizes: true,060. buttonCount: 10061. },062. columns: [{063. field: "OrderID",064. title: "ORDER #",065. template: function (data) {066. var url = getUrlWithLocale("/Account/OrderHistory/GetOrderDetails/");067. return "<a id='btnViewDetails' data-orderID='" + data.OrderID + "' href='" + url + data.OrderID + "/Ds'>" + data.OrderID + "</a>";068. }069. },070. {071. field: "PurchasedBy",072. title: "P/S/Q"073. }, {074. field: "ReceivedDate",075. title: "DATE",076. template: function (data) {077. return data.ReceivedDate.toLocaleDateString();078. }079. }, {080. field: "OrderStatusDesc",081. title: "STATUS",082. template: function (data) {083. if (data.OrderStatusDesc === 'ORDER COMPLETE') {084. return "<span class='complete'>" + data.OrderStatusDesc + "</span>";085. }086. else if (data.OrderStatusDesc === "CANCELLED") {087. return "<span class='cancelled'>" + data.OrderStatusDesc + "</span>";088. }089. else {090. return "<span class='processing'>" + data.OrderStatusDesc + "</span>";091. }092. },093. },094. {095. field: "HapOrderStatus",096. title: "STATUS",097. hidden: true,098. template: function (data) {099. if (data.HapOrderStatus === "ACTIVE") {100. return "<span class='complete'>" + data.HapOrderStatus + "<span>";101. }102. else if (data.HapOrderStatus === "CANCELLED") {103. return "<span class='cancelled'>" + data.HapOrderStatus + "<span>";104. }105. else {106. return "<span class='processing'>" + data.HapOrderStatus + "<span>";107. }108. }109. },110. {111. field: "OrderPurpose",112. title: "ORDER PURPOSE"113. },114. {115. field: "PurchaserName",116. title: "PURCHASER",117. attributes: {118. "class": "tablet"119. },120. template: "#:PurchaserInfo.PurchaserName#"121. },122. {123. field: "Recipient",124. title: "SHIP TO",125. attributes: {126. "class": "tablet"127. },128. template: "#:Shipment.Recipient#"129. },130. {131. field: "VolumePoints",132. title: "VOLUME",133. template: "#:Pricing.VolumePoints#"134. },135. {136. field: "Order Again",137. title: "ORDER AGAIN",138. template: (function () {139. var url = getUrlWithLocale("/Shop/Cart/Copy/Index/");140. if (myOrders.SearchControl.pagingSearch().IsHapOrder === false) {141. return "<a class='icon-files-ln-3' href='" + url + "#:OrderID#/Ds'> </a>";142. }143. return "";144. }())145. },146. {147. field: "ViewReceipt",148. title: "VIEW RECEIPT",149. template: "<a href='javascript:void();'><i class='icon-receipt-ln-4'></i></a>",150. }]151. });152. $(Kendogrid).kendoPager({153. messages: { itemsPerPage: "results per page" }154. });155. }156. var getUrlWithLocale = function (url) {157. var pathArray = window.location.pathname.split('/');158. var segment = pathArray[1];159. var regex = /^([a-zA-Z]{2}-[a-zA-Z]{2})$/;160. 161. if (regex.test(segment)) {162. return "/" + segment + url;163. }164. return url;165. }166. var searchByOrderId = function (orderId) {167. localStorage.searchByOrderId = true;168. isOrderById = true;169. localStorage.OrderID = orderId;170. load(false);171. }172. function getOrdersDataSource(data, options) {173. $.ajax({174. url: getUrlWithLocale("/Account/OrderInquiry/GetOrders"),175. data: data,176. dataType: "json",177. success: function (result) {178. if (result == null) {179. noFound();180. }181. else {182. showGrid();183. }184. kendo.ui.progress(Kendogrid, false);185. options.success(result);186. }187. });188. }189. function getOrderByIdDataSource(orderId, options) {190. $.ajax({191. url: getUrlWithLocale("/Account/OrderInquiry/GetOrderById"),192. data: { orderId: orderId },193. dataType: "json",194. success: function (result) {195. if (result == null) {196. noFound();197. }198. else {199. showGrid();200. }201. kendo.ui.progress(Kendogrid, false);202. options.success(result);203. }204. });205. }206. function noFound() {207. Kendogrid.hide();208. NoFoundMessage.show();209. }210. function showGrid() {211. NoFoundMessage.hide();212. Kendogrid.css("display", "block");213. };214. function formatColumns() {215. var grid = Kendogrid.data("kendoGrid");216. if (myOrders.SearchControl.pagingSearch().IsHapOrder === true) {217. grid.hideColumn("Recipient");218. grid.hideColumn("Order Again");219. grid.hideColumn("ViewReceipt");220. grid.hideColumn("OrderStatusDesc");221. grid.hideColumn("PurchasedBy");222. grid.hideColumn("PurchaserName");223. grid.showColumn("HapOrderStatus");224. 225. $("#grid thead [data-field=ReceivedDate] .k-link").html("Start Date");226. }227. else {228. grid.showColumn("Recipient");229. grid.showColumn("Order Again");230. grid.showColumn("View Receipt");231. grid.showColumn("OrderStatusDesc");232. grid.showColumn("PurchasedBy");233. grid.showColumn("PurchaserName");234. grid.hideColumn("HapOrderStatus");235. 236. $("#grid thead [data-field=ReceivedDate] .k-link").html("Date");237. }238. }239. 240. function onDataBound(arg) {241. var grid = Kendogrid.data("kendoGrid");242. if (myOrders.SearchControl.pagingSearch().IsHapOrder === true) {243. grid.hideColumn("Recipient");244. grid.hideColumn("Order Again");245. grid.hideColumn("ViewReceipt");246. grid.hideColumn("OrderStatusDesc");247. grid.hideColumn("PurchasedBy");248. grid.hideColumn("PurchaserName");249. grid.showColumn("HapOrderStatus");250. 251. $("#grid thead [data-field=ReceivedDate] .k-link").html("Start Date");252. }253. else {254. grid.showColumn("Recipient");255. $("th[data-field='Recipient']").show();256. grid.showColumn("OrderAgain");257. $("th[data-field='Order Again']").show();258. grid.showColumn("ViewReceipt");259. $("th[data-field='ViewReceipt']").show();260. grid.showColumn("OrderStatusDesc");261. $("th[data-field='OrderStatusDesc']").show();262. grid.showColumn("PurchasedBy");263. $("th[data-field='PurchasedBy']").show();264. grid.showColumn("PurchaserName");265. $("th[data-field='PurchaserName']").show();266. grid.hideColumn("HapOrderStatus");267. $("th[data-field='HapOrderStatus']").hide();268. $("#grid thead [data-field=ReceivedDate] .k-link").html("Date");269. }270. }271. return {272. load: load,273. gerUrlWithLocale: getUrlWithLocale,274. searchByOrderId: searchByOrderId275. };276. }())277. 278.})(window.myOrders = window.myOrders || {}, jQuery);279. 280.$(document).ready(function () {281. 282. myOrders.OrderHistory.load(false);283. 284. $("#show-form").click(function () {285. clearErrors();286. $("#search-form").slideToggle();287. $(this).find("i").toggleClass("icon-arrow-circle-ln-29 icon-arrow-circle-ln-30");288. });289. 290.});