Hi - I'm using the Kendo Grid and it is behaving strangely on mobile devices when being included in
an initially-hidden div. I'm using Bootstrap and the latest version of Kendo UI.
an initially-hidden div. I'm using Bootstrap and the latest version of Kendo UI.
The basic layout is this -- I have a button toward the bottom of a Bootstrap panel, and a div underneath that (still
inside the panel), which gets initialized to a kendo grid and has an initial style of "display:none;".
The button toggles the display of the grid. This works perfectly on desktop browsers.
inside the panel), which gets initialized to a kendo grid and has an initial style of "display:none;".
The button toggles the display of the grid. This works perfectly on desktop browsers.
On mobile devices a light grey renderding of the space for the grid shows up (see the "HiddenDivs" image). When I
click the "Show / Hide" button, the grid shows up nicely (see the "showing data" image).
click the "Show / Hide" button, the grid shows up nicely (see the "showing data" image).
What can I do to prevent the light grey showing when the grid is hidden?
Here is the HTML code:
<div id="paymentHistoryButtons" style="padding-bottom: 30px;"> <button class="btn btn-xs btn-info pull-right" onclick="viewPaymentHistory();">Show / Hide History</button></div><div id="PaymentHistoryGrid" style="display: none;"></div>Here is the javascript that sets up the grid -- the "getPaymentHistory" function is called in document.ready.
function getPaymentHistory() { $('#PaymentHistoryGrid').html(''); var consumerId = @NwpSession.SelectedAccount.ConsumerId; var merchantId = @NwpSession.SelectedAccount.PropertyMerchantId; var window = $("#window").kendoWindow({ title: "Cancel Payment", visible: false, //the window will not appear before its .open method is called width: "400px", height: "200px", }).data("kendoWindow"); var windowTemplate = kendo.template($("#windowTemplate").html()); var rot = OneResidentUtilities.getResourceOwnerToken(); $("#PaymentHistoryGrid").kendoGrid({ columns: [ { title: 'Date', field: 'DueDate', type: 'date', format: '{0:MM/dd/yyyy}' }, { title: 'Tracking Number', field: 'TrackingNumber', width: 125}, { title: 'Amount', field: 'Amount', format: '{0:C}' }, { title: 'Status', field: 'PaymentStatusString' }, { command: { name: 'cancelButton', text: 'Cancel', click: function(e) { var tr = $(e.target).closest("tr"); //get the row for deletion var data = this.dataItem(tr); //get the row data so it can be referred later window.content(windowTemplate(data)); //send the row data object to the template and render it window.open().center(); $("#yesButton").click(function() { cancelPayment(data); window.close(); }); $("#noButton").click(function() { window.close(); }); }, className: 'btn btn-primary btn-xs' } } ], dataSource: { transport: { read: { url: 'https://' + OneResidentUtilities.getApiRoot() + '/Payments/retrieval/paymenthistory?consumerId=' + consumerId + '&merchantId=' + merchantId, headers: { 'Authorization': 'Bearer ' + rot }, method: 'GET', dataType: 'json' } }, sort: { field: "DueDate", dir: "desc" }, }, dataBound: function(e) { gridDataBound(e); }, editable: true, mobile: true, theme: 'bootstrap', sortable: true, filterable: true, scrollable: true, }); } function viewPaymentHistory() { $('#PaymentHistoryGrid').toggle(); } function gridDataBound(e) { $('#lastPaymentTable').hide(); $('#paymentHistoryLoader').show(); var grid = $("#PaymentHistoryGrid").data("kendoGrid"); var gridData = grid.dataSource.view(); if (gridData.length === 0) { $('#paymentHistoryButtons').hide(); $('#paymentHistoryGrid').hide(); $('#noPaymentHistoryFound').show(); $('#paymentHistoryLoader').hide(); } else { $('#noPaymentHistoryFound').hide(); var cancelButtonColumn = grid.columns[grid.columns.length - 1]; var showCancelColumn = false; for (var i = 0; i < gridData.length; i++) { var currentUid = gridData[i].uid; if (gridData[i].PaymentStatus != 1) { var currentRow = grid.table.find("tr[data-uid='" + currentUid + "']"); var cancelButton = $(currentRow).find(".k-grid-cancelButton"); cancelButton.hide(); } else { showCancelColumn = true; } } if (showCancelColumn) { grid.showColumn(cancelButtonColumn); } else { grid.hideColumn(cancelButtonColumn); } var lastPayment = gridData[0]; if (lastPayment) { $('#lastPaymentDate').html(new Date(lastPayment.DueDate).toLocaleDateString()); $('#lastTrackingNumber').html(lastPayment.TrackingNumber); $('#lastAmount').html('$' + lastPayment.Amount.toFixed(2)); $('#lastStatus').html(lastPayment.PaymentStatusString); if (lastPayment.PaymentStatusString === "Scheduled") { $('#cancelLastPayment').show(); } } $('#paymentHistoryLoader').hide(); $('#lastPaymentTable').show(); } }