ag-grid sort不能与另一个第三方插件一起使用
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ag-grid sort不能与另一个第三方插件一起使用相关的知识,希望对你有一定的参考价值。
ag-grid sort不能与另一个第三方插件一起使用。 Stimulsoft report.js用于报告工具。
please find plunkr link for the same.
<html>
<head>
<script src="https://unpkg.com/ag-grid@13.3.1/dist/ag-grid.js"></script>
<script src="https://cdn.jsdelivr.net/npm/stimulsoft-reports-js@2018.2.3/stimulsoft.reports.js"></script>
</head>
<body>
<div id="myGrid" style="height: 100%;" class="ag-fresh"></div>
<script src="main.js"></script>
</body>
</html>
答案
你的问题很可能是由于“Stimulsoft Reports.JS”在javascript中严重修改了原生原型(至少String
/ Array
/ Object
),这几乎总是一个糟糕的主意。
换句话说,他们的代码很糟糕。
以下是一些支持链接:
- Why is extending native objects a bad practice?
- Why is it frowned upon to modify JavaScript object's prototypes?
- http://perfectionkills.com/extending-native-builtins/
至于如何解决它,不知道。这是一个长期的调查,以解决这个问题。
尝试将刺激的东西放在iframe
中,这样可以让自己感到高兴和独立。
我甚至不确定这是原因,但可能是。可能是ag-grid可以做些什么来修复它们,但这不是他们的问题。无论发生什么,都是Stimulshaft的错。
另一答案
在ag-grid中
ComponentUtil.toNumber = function(value) {
if (typeof value === 'number') {
return value;
} else if (typeof value === 'string') {
return Number(value);
} else {
return undefined;
}
}
并且在stimulsoft
Object.prototype.toNumber = function() {
if (this.sti_is(String) && this.indexOf(",") >= 0)
return Number(this.replaceAll(",", "."));
return Number(this)
}
所以由于这种冲突,排序是无法做到的。
然后我添加下面的行然后解决了我的问题。
<script>
Object.prototype.toNumber = undefined;
</script>
以上是关于ag-grid sort不能与另一个第三方插件一起使用的主要内容,如果未能解决你的问题,请参考以下文章
Android Kotlin 不能将 list.sort() 与 lambda 一起使用
与 Angular 材质选项卡一起使用时,Ag-Grid Cell Render 无法正确显示按钮