Hi,
I'm very new to the MVVM framework and I'm running into problems with the grid. If I set a static height for the grid the content area including the scroll bar does not respect the height. The outline of the grid is correct. I thought at first it was an issue with the parent div being set to display:none but I removed that and it still happens. When I first load my grid it is loading one record and the scroll bar appears just slightly larger than that 1 row. When I click the checkbox above it forces it to load 3 records and the content area/scroll bar remain at the same height and you can scroll it. If I remove the static height the grid grows as more records are loaded which make the scroll bar useless because the grid is always showing all the records loaded. I have attached a couple of screen shots. Am I the only one having this issue?
Thanks for any help that can be provided,
Casey
This is a single page app so each page starts off as it's own Div
Here is the view model that controls that page
My binding occurs with the page's hash change
I'm very new to the MVVM framework and I'm running into problems with the grid. If I set a static height for the grid the content area including the scroll bar does not respect the height. The outline of the grid is correct. I thought at first it was an issue with the parent div being set to display:none but I removed that and it still happens. When I first load my grid it is loading one record and the scroll bar appears just slightly larger than that 1 row. When I click the checkbox above it forces it to load 3 records and the content area/scroll bar remain at the same height and you can scroll it. If I remove the static height the grid grows as more records are loaded which make the scroll bar useless because the grid is always showing all the records loaded. I have attached a couple of screen shots. Am I the only one having this issue?
Thanks for any help that can be provided,
Casey
This is a single page app so each page starts off as it's own Div
<div id="CustomerListPage" style="min-width: 500px"> <div style="width: 600px; margin-left: auto; margin-right: auto; text-align: right">Include Inactive?<input id="IncludeInactiveCheckBox" type="checkbox" data-bind="checked: includeInactive, events: {click: includeInactiveChanged}" /></div> <div id="CustomerListGrid" style="width: 600px; height:300px; margin-left: auto; margin-right: auto; margin-top: 10px" data-role="grid" data-selectable="row" data-columns='[{"field":"id", "title":"ID", "width":50}, {"field":"FullName", "title":"Name"}, {"field":"MailingAddressCity", "title":"City", "width":150}, {"field":"MailingAddressState", "title":"ST", "width":50}]' data-bind="source: customers"></div></div>Here is the view model that controls that page
var CustomerListViewModel = kendo.observable({ // properties customers: [], includeInactive: false, includeInactiveChanged: function (val) { this.load(); }, load: function () { var self = this; var dto = new DTO(true, '', new Object({ includeInactive: this.get("includeInactive") })); $.ajax('SysUserWebService.asmx/GetCustomerList', { data: JSON.stringify({ dto: dto }), type: 'post', contentType: 'application/json', success: function (result) { if (result.d.success) { self.set('customers', result.d.payload); } else { alert(result.d.message); }; } }); } });My binding occurs with the page's hash change
// routes the application based on hash changesvar HashChange = function () { HideAllPages(); var query = location.hash.split("?"); var hash = query[0]; switch (hash) { case '': location.hash = '#MainMenu'; break; case '#MainMenu': $('#MainMenuPage').show(); break; case '#CustomerList': $('#CustomerListPage').show(); kendo.bind($('#CustomerListPage'), window.CustomerListViewModel); window.CustomerListViewModel.load(); break; case '#CrewList': $('#CrewListPage').show(); break; case '#History': $('#HistoryPage').show(); break; };};