Forum
23:19
14/07/2014
I want to you take a look at the below given jQuery Grid code and let me know why rendering takes more than 90 seconds. I would greatly appreciate your response
Â
<script src="../../../_layouts/Scripts/jqgrid/jquery.min.js" type="text/javascript"></script>
<script src="../../../_layouts/Scripts/jqgrid/jquery-ui.min.js" type="text/javascript"></script>
<script src="../../../_layouts/Scripts/jqgrid/jquery.multiselect.js" type="text/javascript"></script>
<script src="../../../_layouts/Scripts/jqgrid/jquery.multiselect-erichynds.com.js" type="text/javascript"></script>
<script src="../../../_layouts/Scripts/jqgrid/jquery.multiselect.filter.js" type="text/javascript"></script>
<script src="../../../_layouts/Scripts/jqgrid/grid.locale-en.js" type="text/javascript"></script>
<script src="../../../_layouts/Scripts/jqgrid/jquery.jqGrid.src.js" type="text/javascript"></script>
<script type="text/javascript">
var idleTime = 0;
$(document).ready(function () {
//Increment the idle time counter every minute.
var idleInterval = setInterval(timerIncrement, 60000); // 1 minute
$(this).mousemove(function (e) {
idleTime = 0;
});
$(this).keypress(function (e) {
idleTime = 0;
});
});
function drawszlider(ossz, meik) {
$("#list").hide();
$("#szlider").show();
}
function timerIncrement() {
idleTime = idleTime + 1;
if (idleTime > 15) {
window.location.reload();
}
}
</script>
<script type="text/javascript">
$.jgrid.no_legacy_api = true;
$.jgrid.useJSON = true;
var gridInfo;
function pointercursor(cellvalue, options, rowObject) {
var new_formatted_cellvalue = '<span class="pointer">' + cellvalue + '</span>';
return new_formatted_cellvalue;
}
function createCookie(name, value, days) {
if (days) {
var date = new Date();
date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
var expires = "; expires=" + date.toGMTString();
}
else var expires = "";
document.cookie = name + "=" + value + expires + "; path=/";
}
function readCookie(name) {
var nameEQ = name + "=";
var ca = document.cookie.split(';');
for (var i = 0; i < ca.length; i++) {
var c = ca[i];
while (c.charAt(0) == ' ') c = c.substring(1, c.length);
if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length, c.length);
}
return null;
}
function eraseCookie(name) {
createCookie(name, "", -1);
}
function showCommentsDialogLink() {
return "<a href='javascript:void(0)' >View</a>";
// return "<a href='javascript:DisplayCommentsDialog()'>View Comments</a>";
}
function DisplayCommentsDialog(ID, projectid, tumsType, ptn, CommentsWorklist) {
var options = {
url: SP.Utilities.Utility.getLayoutsPageUrl('SharepointApp_jQueryTUMS/ShowComments.aspx?id=' + ID + '&projectid=' + projectid + '&tumsType=' + tumsType + '&PTN=' + ptn + '&CommentsWorklist=' + CommentsWorklist),
title: 'Comments',
allowMaximize: false,
showClose: true,
width: 1040,
height: 600,
dialogReturnValueCallback: Function.createDelegate(null, function () { $("#list").jqGrid('resetSelection'); })
};
SP.UI.ModalDialog.showModalDialog(options);
}
function CloseCallback(result, target) {
location.reload(true);
}
function showDialogForHighLevel(id, element) {
var projectids = new Array();
var ptn;
var turf;
var quote;
var tumsType;
var ismanual;
var readyForMSAct;
var bChosen = false;
$("#list").find('input[type=checkbox]').each(function () {
if ($(this).is(':checked')) {
turf = $(this).closest("tr").find('td:eq(3)').text();
projectids.push($(this).closest("tr").find('td:eq(2)').text());
ptn = $(this).closest("tr").find('td:eq(6)').text();
tumsType = $(this).closest("tr").find('td:eq(9)').text();
ismanual = $(this).closest("tr").find('td:eq(47)').text();
readyForMSAct = $(this).closest("tr").find('td:eq(14)').text();
bChosen = true;
}
});
if (!bChosen) { alert('Choose atleast one item to proceed'); return; }
var options = {
url: SP.Utilities.Utility.getLayoutsPageUrl('SharepointApp_jQueryTUMS/ShowHighLevelListUpdate.aspx?ptn=' + ptn + '&tums=' + tumsType + '&ismanual=' + ismanual + '&projectids=' + projectids.join(",")),
title: 'Edit High Level List info',
allowMaximize: false,
showClose: true,
width: 1040,
height: 600,
dialogReturnValueCallback: Function.createDelegate(null, CloseCallback)
};
SP.UI.ModalDialog.showModalDialog(options);
}
function getUniqueNames(columnName) {
var texts = $("#list").jqGrid('getCol', columnName);
var uniqueTexts = [];
var textsLength = texts.length;
var text;
var textsMap = {};
var i;
for (i = 0; i < textsLength; i++) {
text = texts[i];
if (text !== undefined && textsMap[text] === undefined) {
// to test whether the texts is unique we place it in the map.
textsMap[text] = true;
uniqueTexts.push(text);
}
}
uniqueTexts.sort(compare);
return uniqueTexts;
}
var myData_wcf = [{ Turf: "", Project: "", Program: "", PTN: "", Site_ID: "", FAID: "", TUMS: "", TUMS_Status: "", TUMS_Aging: "", Ready_for_TUMS: "", Ready_for_MS_Actualization: "", MS_Date_Actualized: "", MS_Date_Un_Actualized: "", Quote: "", Doc_Deliverables_Complete: "", Oracle_True_Up_Complete: "", Financial_Analysis_CL: "", OOM_Submitted: "", Customer_Quote_Complete: "", Project_Manager: "", Customer: "", Comments: "", MS_Date_Forecast: "", Lease_Fully_Exec_Fcst: "", Lease_Fully_Exec_Act: "", BP_Received_Fcst: "", BP_Received_Act: "", Site_Acq_Comp_Fcst: "", Site_Acq_Comp_Act: "", Tower_Wk_Comp_Fcst: "", Tower_Wk_Comp_Act: "", Const_Comp_Fcst: "", Const_Comp_Act: "", On_Air_Fcst: "", On_Air_Act: "", Turnover_Comp_Fcst: "", Turnover_Comp_Act: "", Cust_Accept_Fcst: "", Cust_Accept_Act: "", Previously_Un_Actualized: "", Goodman_Project_Status: "", Customer_Project_Status: "", IsManual: "", Created: "", Modified: ""}];
var myData_Obj;
$grid.jqGrid({
datatype: 'local',
data: myData_wcf,
colNames: ['ID', 'Turf', 'Project', 'Program', 'PTN', 'Site ID', 'FAID', 'TUMS', 'TUMS Status', 'DNKO', 'IssueCode', 'TUMS Aging', 'Ready for TUMS', 'Ready for MS Actualization', 'MS Date Actualized', 'MS Date Un Actualized', 'Quote', 'Doc Deliverables Complete', 'Oracle True Up Complete', 'Financial Analysis CL', 'OOM Submitted', 'Customer Quote Complete', 'Project Manager', 'Customer', 'Comments', 'MS Date Forecast', 'Lease Fully Exec Fcst', 'Lease Fully Exec Act', 'BP Received Fcst', 'BP Received Act', 'Site Acq Comp Fcst', 'Site Acq Comp Act', 'Tower Wk Comp Fcst', 'Tower Wk Comp Act', 'Const Comp Fcst', 'Const Comp Act', 'On Air Fcst', 'On Air Act', 'Turnover Comp Fcst', 'Turnover Comp Act', 'Cust Accept Fcst', 'Cust Accept Act', 'Previously Un Actualized', 'Goodman Project Status', 'Customer Project Status', 'IsManual', 'Created', 'Modified', 'IsControlsUser'],
rowNum: getRowNum(),
rowList: [5, 10, 15, 20, 25],
pager: '#pager',
gridview: true,
ignoreCase: true,
rownumbers: true,
multiSort: true,
sortname: 'Turf,Program,Modified',
viewrecords: true,
sortorder: 'desc',
multiselect: true,
resizeStop: function () {
var $grid = $(this.bDiv).find('>div:first>table.ui-jqgrid-btable:first'),
shrinkToFit = $grid.jqGrid('getGridParam', 'shrinkToFit');
$grid.jqGrid('setGridWidth', this.newWidth, shrinkToFit);
},
caption: " eTUMS New Display Model",
height: '120%',
width: '100%',
onCellSelect: function (rowid, index, contents, event) {
var prjID = $('#list').jqGrid('getCell', rowid, 'ID');
var project = $('#list').jqGrid('getCell', rowid, 'Project');
var tumsType = $('#list').jqGrid('getCell', rowid, 'TUMS');
var ptn = $('#list').jqGrid('getCell', rowid, 'PTN');
var CommentsWorklist = 'WorklistComments';
if (contents.toString().indexOf(' View ') > 0)
DisplayCommentsDialog(prjID, project, tumsType, ptn, CommentsWorklist);
},
onSelectRow: function (rowid) {
},
onSelectAll: function (aRowids, status) // this function is used when you select all check box
{
if (status) {
for (var i = 0; i < aRowids.length; i++) {
if ($("#jqg_list_" + aRowids[i]).attr("disabled")) {
$("#jqg_list_" + aRowids[i]).removeAttr("checked");
} else {
$("#divButtons").show();
}
}
}
},
loadComplete: function () {
$("tr.jqgrow:odd").css("background", "#EFF3FB");
var ids = jQuery("#list").jqGrid('getDataIDs');
var columnsNotInSearch = new Array();
var postData = $("#list").jqGrid('getGridParam', 'postData');
var postDataStr = JSON.stringify(postData);
var cm = $(this).jqGrid('getGridParam', 'colModel'), i, l = cm.length;
for (i = 0; i < l; i += 1) {
if (postDataStr.indexOf(cm[i].name) == -1 & cm[i].name != 'ID' & cm[i].name != 'rn' & cm[i].name != 'cb') {
columnsNotInSearch.push(cm[i].name);
}
}
for (var i = 0; i < ids.length; i++) {
var rowId = ids[i];
var TaskStatus = jQuery("#list").jqGrid('getCell', rowId, 'TUMS_Status');
var IsControlsUser = jQuery("#list").jqGrid('getCell', rowId, 'IsControlsUser');
if ((TaskStatus.indexOf('Progress') == -1 & TaskStatus.indexOf('New') == -1 & TaskStatus.indexOf('Rejected') == -1) | IsControlsUser.toLowerCase() == 'false') {
jQuery("#jqg_list_" + rowId).attr("disabled", true);
}
}
eraseCookie('rownum');
createCookie('rownum', $grid.jqGrid('getGridParam', 'rowNum'), 0);
$("#list").show();
$("#szlider").hide();
$("#divButtons").show();
},
beforeRequest: function (rowid, e) {
modifySearchingFilter.call(this, ',');
if ($("#jqg_list_" + rowid).attr("disabled")) {
return false;
}
return true;
}
});
$grid.jqGrid('filterToolbar', { stringResult: true, searchOnEnter: true, defaultSearch: myDefaultSearch });
$grid.jqGrid('navGrid', '#pager', { refresh: false, edit: false, add: false, del: false }, {}, {}, {}, {
multipleSearch: true
});
$grid.jqGrid('navButtonAdd', "#pager", {
caption: "", title: "Reload Grid", buttonicon: "ui-icon-refresh",
multipleSearch: true,
multipleGroup: true,
recreateFilter: true,
onClickButton: function () {
gridInfo = new Object();
gridInfo.rowNum = $grid.jqGrid('getGridParam', 'rowNum');
$grid.jqGrid('setGridParam', { search: false });
eraseCookie('rownum');
createCookie('rownum', gridInfo.rowNum, 0);
location.reload(true);
}
});
});
</script>
</head>
<body onload="drawszlider(121, 56);">
<table id="list" style="display:none;" ><tr><td/></tr></table>
<div id="pager" ></div>
<div id="divButtons" style="display:none;" >
<table>
<tr>
<td><input id="btnEditHighLevelList" type="submit" value="Edit High Level List"
onclick="showDialogForHighLevel('divupdateHighLevelList,this');return false;"
/></td>
</tr>
</table>
</div>
<div id="szlider" style="position: absolute;top: 50%;left: 50%;margin-top: -50px;margin-left: -50px;width: 300px;height: 600px;">
<h1>Please wait .....</h1><br />
<img src="../../../_layouts/images/SharePointApp_jQueryTUMS/waiting_animation.gif" alt="" />
</div>
</body>
</html>
15:56
Moderators
30/10/2007
Hello,
Â
The reason for this can be 100.Â
The code you have posted is a very long, so it is very difficult to tell you where is the reason.
The reason can be on server query and etc.
Â
I recommend you to construct very very basic grid - only data and colmodel definition.
If the result is ok (quick load), then you can step by step add the other code in order to see where is the problem.
Â
Kind Regards
For professional UI suites for Java Script and PHP visit us at our commercial products site - guriddo.net - by the very same guys that created jqGrid.
16:52
14/07/2014
tony said
Hello,Â
The reason for this can be 100.Â
The code you have posted is a very long, so it is very difficult to tell you where is the reason.
The reason can be on server query and etc.
Â
I recommend you to construct very very basic grid - only data and colmodel definition.
If the result is ok (quick load), then you can step by step add the other code in order to see where is the problem.
Â
Kind Regards
Thanks Tony...Infact I could  not post the whole content of the page as there is limitation on no. of characters to post. I have 45 columns (some strings and some dates)  to display and USERS wanted unique values to be displayed for multi select on each column and I believe I do not have any extra processing other than building the jQuery Grid. I sent emails with whole code in it. Could you please kindly check and let me know If I can improve on speedÂ
05:18
14/07/2014
If I take Multi Search option I see lightning speed in rendering the page. i.e. I had only string fields to display
e:Â { name: 'Turf', width: 50, align: 'center' },
Where as when I add back search functionality it got slowed down
{ name: 'Project', width: 80, align: 'center', formatter: 'select',
edittype: 'select',
editoptions: {
value:uniqueprojectIds,
multiple: true
},
stype: 'select',
searchoptions: {
sopt: ['eq', 'ne'],
value: uniqueprojectIds,
attr: { multiple: 'multiple', size: 4 },
dataInit: dataInitMultiselect
}
},
Â
Is there anything went wrong with this following code piece ? I appreciate your help
Â
$(function () {
'use strict';
$grid = $("#list"),
myDefaultSearch = "cn",
getColumnIndexByName = function (columnName) {
var cm = $(this).jqGrid('getGridParam', 'colModel'), i, l = cm.length;
for (i = 0; i < l; i += 1) {
if (cm[i].name === columnName) {
return i; // return the index
}
}
return -1;
},
modifySearchingFilter = function (separator) {
var i, l, rules, rule, parts, j, group, str, iCol, cmi, cm = this.p.colModel,
filters = $.parseJSON(this.p.postData.filters);
if (filters && filters.rules !== undefined && filters.rules.length > 0) {
rules = filters.rules;
for (i = 0; i < rules.length; i++) {
rule = rules[i];
iCol = getColumnIndexByName.call(this, rule.field);
cmi = cm[iCol];
if (iCol >= 0 &&
((cmi.searchoptions === undefined || cmi.searchoptions.sopt === undefined)
&& (rule.op === myDefaultSearch)) ||
(typeof (cmi.searchoptions) === "object" &&
$.isArray(cmi.searchoptions.sopt) &&
cmi.searchoptions.sopt[0] === rule.op)) {
// make modifications only for the 'contains' operation
parts = rule.data.split(separator);
if (parts.length > 1) {
if (filters.groups === undefined) {
filters.groups = [];
}
group = {
groupOp: 'OR',
groups: [],
rules: []
};
filters.groups.push(group);
for (j = 0, l = parts.length; j < l; j++) {
str = parts[j];
if (str) {
// skip empty '', which exist in case of two separaters of once
group.rules.push({
data: parts[j],
op: rule.op,
field: rule.field
});
}
}
rules.splice(i, 1);
i--; // to skip i++
}
}
}
this.p.postData.filters = JSON.stringify(filters);
}
},
dataInitMultiselect = function (elem) {
setTimeout(function () {
var $elem = $(elem), id = elem.id,
inToolbar = typeof id === "string" && id.substr(0, 3) === "gs_",
options = {
selectedList: 2,
height: "300",
checkAllText: "all",
uncheckAllText: "no",
noneSelectedText: "Any",
open: function () {
var $menu = $(".ui-multiselect-menu:visible");
$menu.width("auto");
return;
}
},
$options = $elem.find("option");
if ($options.length > 0 && $options[0].selected) {
$options[0].selected = false; // unselect the first selected option
}
if (inToolbar) {
options.minWidth = 'auto';
}
$elem.multiselect(options).multiselectfilter({ placeholder: '' });
$elem.siblings('button.ui-multiselect').css({
width: inToolbar ? "98%" : "100%",
marginTop: "1px",
marginBottom: "1px",
paddingTop: "3px"
});
}, 50);
};
Most Users Ever Online: 715
Currently Online:
36 Guest(s)
Currently Browsing this Page:
1 Guest(s)
Top Posters:
OlegK: 1255
markw65: 179
kobruleht: 144
phicarre: 132
YamilBracho: 124
Renso: 118
Member Stats:
Guest Posters: 447
Members: 11373
Moderators: 2
Admins: 1
Forum Stats:
Groups: 1
Forums: 8
Topics: 10592
Posts: 31289
Newest Members:
, razia, Prankie, psky, praveen neelam, greg.valainis@pa-tech.comModerators: tony: 7721, Rumen[Trirand]: 81
Administrators: admin: 66