我的列选择器有问题,选择要添加或删除的列后显示结果非常慢。我注意到“setGroupHeaders”是问题所在。夫妇列选择器和组标题似乎没有很好的表现。
我在 JqGrid 4.3.1 上,带有最后一个 jquery 库。以前的版本也出现了这个问题(我必须更新所有库以确保问题不是来自旧版本)。
我真的在论坛上搜索过有关此的任何帖子,但我找不到任何东西。我是唯一一个有这个问题的人吗?是否被引用?
提前感谢您的帮助!!
我的列选择器有问题,选择要添加或删除的列后显示结果非常慢。我注意到“setGroupHeaders”是问题所在。夫妇列选择器和组标题似乎没有很好的表现。
我在 JqGrid 4.3.1 上,带有最后一个 jquery 库。以前的版本也出现了这个问题(我必须更新所有库以确保问题不是来自旧版本)。
我真的在论坛上搜索过有关此的任何帖子,但我找不到任何东西。我是唯一一个有这个问题的人吗?是否被引用?
提前感谢您的帮助!!
我在大量列(> 500 列)上遇到了同样的列选择器非常慢的问题。因为我使用的是treegrid,所以我不能服用大多数性能增强药物(我的意思是调整)。有时,仅应用和重绘网格就需要 3 分钟以上。
然而,我想出了一个肮脏残酷的方式来解决这个问题。对我来说独特之处在于我总是保留一份数据副本(js 中本地的 json 格式)。因此,任何重绘都不会产生网络流量。因此,我自己实现了一个列选择器,并进行了残酷的卸载并重新创建了网格。现在,应用所选列并重绘最多需要 10 多秒。
这是我的列选择器的代码。正如你所看到的,它对我的程序来说是高度专业化的,但你可以得到一个想法。狂热的 GUI 来自这里如果我做了一些糟糕的代码,请原谅我。
choose_column: function() {
var me = this;
var rn=this.response_json.colNames;
var rm=this.response_json.colModel;
var line_text;
var html_text = '<select id="column_selector" class="multiselect" multiple="multiple" name="countries[]" style="width: 500px; margin: 0px auto; height: 340px; ">\n';
for ( var i = 0 ; i < rn.length; i++ ) {
if (rm[i].hidden) {
line_text = '<option value="'+i+'">'+rn[i]+'</option>\n';
} else {
line_text = '<option value="'+i+'" selected="selected">'+rn[i]+'</option>\n';
}
html_text += line_text;
}
html_text += '</select>';
jQuery("#dlg_choose_columns").empty()
.append(html_text);
jQuery(".multiselect").multiselect({
sortable: true,
searchable: true,
hide: 'explode',
show: 'blind',
dividerLocation: 0.5
});
jQuery("#dlg_choose_columns").dialog({
width: 535,
height: 550,
modal: true,
title: 'Select Columns',
hide: 'explode',
buttons: {
"Ok": function() {
var selected_values = jQuery(".multiselect").val();
for ( var i = 0; i < rn.length; i++ ) {
rm[i].hidden = true;
}
for ( var i = 0; i < selected_values.length; i++ ) {
delete rm[selected_values[i]].hidden;
}
jQuery("#dlg_choose_columns").dialog("close");
me.unload_jqgrid();
me.create_grid(null, me.is_tree, me.need_plot);
},
"Cancel": function() {
jQuery("#dlg_choose_columns").dialog("close");
}
}
});
}