在此演示的示例中,您可以看到在使用的情况下为网格加载1500行的时间gridview: true
。
您的示例最大的性能问题在loadComplete
函数内部。如果确实需要在网格上进行一些修改,则应使用jQuery来操纵网格包含。如果像示例中一样直接使用网格的DOM元素,则可以实现最佳性能
loadComplete: function() {
var i=0, indexes = this.p._index, localdata = this.p.data,
rows=this.rows, rowsCount = rows.length, row, rowid, rowData, className;
for(;i<rowsCount;i++) {
row = rows[i];
className = row.className;
//if ($(row).hasClass('jqgrow')) { // test for standard row
if (className.indexOf('jqgrow') !== -1) {
rowid = row.id;
rowData = localdata[indexes[rowid]];
if (rowData.amount !== "200") {
// if (!$(row).hasClass('ui-state-disabled')) {
if (className.indexOf('ui-state-disabled') === -1) {
row.className = className + ' ui-state-disabled';
}
//$(row).addClass('ui-state-disabled');
}
}
}
}
您可以在此处看到相应的示例。
在loadComplete
函数的实现中,我使用了这样的事实:具有loadonce:true
参数的jqGrid 使用内部参数_index
,data
并且可以用来访问网格的包含物。在示例中,我禁用了该列中不包含“ 200”的amount
行。