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

use*_*920 0 javascript grid jquery jquery-ui slickgrid

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

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

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

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

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

同样的问题适用于排序,过滤等等......但我希望上面的解释涵盖了我想要问的内容.

谢谢!

Tin*_*Tin 5

您可以使用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);
Run Code Online (Sandbox Code Playgroud)