当我在发布模式下运行我的 MVC 4 项目时,使用SlickGrid的一个页面没有正确显示(网格非常非常高,并且缺少网格单元格)。
但是,我认为这不是 SlickGrid 的问题,而是捆绑器(System.Web.Optimization
集成到 MVC 4 中)如何缩小代码的问题。
我抓住了缩小的 JavaScript,并开始一次在一个区域反转缩小,直到问题得到解决。我发现改变(并原谅滚动,我想保持缩小版本完全不变)
function SlickFilter(n,t){var i=n.option,r=t.searchString;return n.pctSortKey.key<t.percentCompleteThreshold||r!=""&&i.indexOf(r)==-1&&i!="Unweighted Response"&&i!="Median"&&i!="Average"?!1:!0}
对原来的
function SlickFilter(item, args) {
if (item.pctSortKey.key < args.percentCompleteThreshold) {
return false;
}
if (args.searchString != "" && item.option.indexOf(args.searchString) == -1 && item.option != "Unweighted Response" && item.option != "Median" && item.option != "Average") {
return false;
}
return true;
}
如果缩小文件的所有其他元素未更改,则解决问题。
该函数的使用如下:
dataView.setFilter(SlickFilter);
为 SlickGrid 提供回调函数以过滤掉某些结果。
原始函数和缩小函数如何不等价?
更新
SlickGrid 正在“编译”我提供的过滤器功能。该编译步骤在缩小版本中失败。编译后的缩小代码如下所示:
function anonymous(_items,_args) {
var _retval = [], _idx = 0; var n, t = _args; _coreloop: for (var _i = 0, _il = _items.length; _i < _il; _i++) { n = _items[_i];
//debugger;
var i = n.option,
r = t.searchString;
return
n.pctSortKey.key < t.percentCompleteThreshold
||
r !=""
&& i.indexOf(r)==-1
&& i != "Unweighted Response"
&& i != "Median"
&& i != "Average"
? !1
: !0
; } return _retval;
}
注意多个return语句。
有了这个额外的见解,我能够识别出一个相关的 SlickGrid 错误: