Grid Take over 10 se3conds to load - need answer asap
mikew194 opened this issue · comments
Mike Wassermann commented
Hi I suspect their is someting going o ninternal to the grid, that is causing this.
function SalesReqItem(item) {
var self = this;
self.CustomerID = ko.observable(item.CustomerId);
self.Filename = ko.observable(item.Filename);
self.ContractNum = item.ContractNum
self.FirstName = ko.observable(item.FirstName);
self.LastName = ko.observable(item.LastName);
this.FullName = ko.computed(function () {
return this.FirstName() + "," + this.LastName();
}, this);
self.Address1 = ko.observable(item.Address1);
self.City = ko.observable(item.City);
self.State = ko.observable(item.State);
self.Zip = ko.observable(item.Zip);
this.FullLocation = ko.computed(function () {
return this.City() + "," + this.State() + "," + this.Zip();
}, this);
self.LoanOfficer = ko.observable(item.LoanOfficer);
self.TermMonths = ko.observable(item.TermMonths);
self.TermMiles = ko.observable(item.TermMiles);
this.Term = ko.computed(function () {
return self.TermMonths() + "/" + self.TermMiles();
}, this);
self.Total = ko.observable(item.Total);
self.DateCreated = ko.observable(item.DateCreated);
self.Vin = ko.observable(item.vin);
self.ContractNum = ko.observable(item.ContractNum);
self.LoanNumber = ko.observable(item.LoanNumber);
self.ContractType = ko.observable(item.ContractType);
self.Show = function () { item.Show };
};
var SalesReqViewModel = function () {
var self = this;
self.SelectedValue = ko.observable(1); // Service by default
self.sortedData = function () { };
self.ContractTypes = ko.observableArray();
self.SalesItems = ko.observableArray();
self.selectedItems = ko.observableArray();
self.filterOptions = {
filterText: ko.observable(""),
useExternalFilter: true
};
self.pagingOptions = {
pageSizes: ko.observableArray([25, 50, 100]),
pageSize: ko.observable(25),
totalServerItems: ko.observable(199),
currentPage: ko.observable(1)
};
self.setPagingData = function (data, page, pageSize) {
var pagedData = data.slice((page - 1) * pageSize, page * pageSize);
self.myData(pagedData);
self.pagingOptions.totalServerItems(data.length);
};
self.getPagedDataAsync = function (pageSize, page, searchText) {
setTimeout(function () {
var data;
self.pagingOptions.totalServerItems(199);
$.ajax({
type: "POST",
url: '/Quotes/SalesReg.aspx/LoadSalesRegister',
contentType: "application/json; charset=utf-8",
data: ko.toJSON({ contractType: self.SelectedValue(), page: self.pagingOptions.currentPage(), pageSize: self.pagingOptions.pageSize() }),
dataType: "json",
success: function (results) {
var data = JSON.parse(results.d);
for (var i = 0; i < data.length; i++) {
var item = new SalesReqItem(data[i]);
self.SalesItems.push(item);
};
},
error: function (err) {
alert(err.status + " - " + err.statusText);
}
});
//if (searchText) {
// var ft = searchText.toLowerCase();
// $.getJSON('largeLoad.json', function (largeLoad) {
// data = largeLoad.filter(function (item) {
// return JSON.stringify(item).toLowerCase().indexOf(ft) != -1;
// });
// self.setPagingData(data, page, pageSize);
// });
//} else {
// $.getJSON('largeLoad.json', function (largeLoad) {
// self.setPagingData(largeLoad, page, pageSize);
// });
//}
}, 100);
};
self.filterOptions.filterText.subscribe(function (data) {
self.getPagedDataAsync(self.pagingOptions.pageSize(), self.pagingOptions.currentPage(), self.filterOptions.filterText());
});
self.pagingOptions.pageSizes.subscribe(function (data) {
self.getPagedDataAsync(self.pagingOptions.pageSize(), self.pagingOptions.currentPage(), self.filterOptions.filterText());
});
self.pagingOptions.pageSize.subscribe(function (data) {
self.getPagedDataAsync(self.pagingOptions.pageSize(), self.pagingOptions.currentPage(), self.filterOptions.filterText());
});
self.pagingOptions.totalServerItems.subscribe(function (data) {
self.getPagedDataAsync(self.pagingOptions.pageSize(), self.pagingOptions.currentPage(), self.filterOptions.filterText());
});
self.pagingOptions.currentPage.subscribe(function (data) {
self.pagingOptions.currentPage(data)
self.getPagedDataAsync(self.pagingOptions.pageSize(), self.pagingOptions.currentPage(), self.filterOptions.filterText());
});
//self.reload = function () {
// //var spinner = new Spinner().spin(document.getElementById('spin'));
// var data = {
// 'contractType': self.SelectedValue(),
// 'page': self.pagingOptions.currentPage(),
// 'pageSize': self.pagingOptions.pageSize()
// }
// //if (self.status()) {
// // data['status'] = self.status()
// //}
// $.ajax({
// type: "POST",
// data: ko.toJSON(data),
// dataType: "json",
// cache: false,
// url: '/Quotes/SalesReg.aspx/LoadSalesRegister',
// contentType: "application/json; charset=utf-8",
// success: function (results, textStatus, jqXHR) {
// //spinner.stop();
// var data = JSON.parse(results.d);
// var newData = [];
// for (var i = 0; i < data.length; i++) {
// var item = new SalesReqItem(data[i]);
// self.SalesItems.push(item);
// };
// self.pagingOptions.totalServerItems(199);
// },
// error: function (jqXHR, textStatus, errorThrown) {
// //spinner.stop();
// alert({ text: 'There was an error retrieving the email blasts.', type: 'error', timeout: 5000 });
// }
// });
//}
self.gridOptions = {
data: self.SalesItems,
displaySelectionCheckbox: true,
selectedItems: self.selectedItems,
multiSelect: false,
droppable: false,
pagingOptions: self.pagingOptions,
enablePaging: true,
filterOptions: self.filterOptions,
totalServerItems: ko.observable(199),
columnDefs: [
{ field: 'FullName', displayName: 'Name' },
{ field: 'Address1', displayName: 'Address' },
{ field: 'FullLocation', displayName: 'Location' },
{ field: 'Term', displayName: 'Term' },
{ field: 'Total', displayName: 'Total' },
{ field: 'Vin', displayName: 'VIN' },
{ field: 'ContractNum', displayName: 'Show', cellTemplate: "" },
{ field: 'ContractNum', displayName: 'ContractNum' },
{ field: 'LoanOfficer', displayName: 'LoanOfficer' }],
autogenerateColumns: false,
canSelectRows: true,
showColumnMenu: false,
enableColumnResize: true,
rowHeight: 20,
selectWithCheckboxOnly: true,
jqueryUIDraggable: false,
useExternalSorting: true,
sortInfo: self.sortInfo
};
// Initialization
self.init = function () {
self.getPagedDataAsync(self.pagingOptions.pageSize(), self.pagingOptions.currentPage());
};
self.init();
};