如何在多个 SlickGrid 上使用通用格式化程序

How can I use generic formatter on multiple SlickGrid s?

本文关键字:格式化 程序 SlickGrid      更新时间:2023-09-26

我正在使用SlickGrid开发一个Web应用程序。

我们的应用程序在不同的选项卡/页面中有许多网格,因此我想知道我是否可以重构一些代码,这样我就不会为单独的网格一遍又一遍地编写相同的函数。

举个例子:我需要一个自定义格式化程序,因为我们有多个树网格(实现树结构的格式化程序对于每个网格都是相同的)。 函数 PercentCompleteFormatter(row, cell, value, columnDef, dataContext)

鉴于我无法将网格或数据视图作为参数传递(假设上面的签名必须用于所有自定义格式化程序),我基本上必须在创建网格的每个代码块中具有相同的格式化程序代码。

有没有办法创建一个"通用"格式化程序并将其应用于所有网格?

同样的问题也适用于排序、过滤等......但我希望上面的解释涵盖了我想问的问题。

谢谢!

您可以使用 jQuery 的 .proxy() 帮助程序(或类似程序)将函数绑定到特定上下文。

例如:

function MyFormatter(row, cell, value) { 
  var grid = this;  // the grid will be the executing scope
  // ...
}
var myFormatterForGridA = $.proxy(MyFormatter, gridA);
var myFormatterForGridB = $.proxy(MyFormatter, gridB);