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

标签 javascript jquery jquery-ui grid slickgrid

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

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

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

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

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

同样的问题也适用于排序、过滤等……但我希望上述解释能够涵盖我想要问的问题。

谢谢!

最佳答案

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

例如:

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);

关于javascript - 如何在多个 SlickGrid 上使用通用格式化程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10555488/

相关文章:

javascript - 跟踪 <iframe> 内的用户点击(Wiki 游戏)

jquery-ui - 当输入失去焦点时jquery关闭日期选择器

javascript - 如何在 AJAX 内容加载后重新附加 jQuery 函数?

javascript - 如果 JavaScript 中的特定单词匹配,则替换行

javascript - jQuery.offset() 设置位置 : absolute. 我需要位置:固定

javascript - 谷歌云端硬盘 API : ENOENT - but my file is just in the same directory

c# - Javascript:在鼠标移动事件上绘制矩形

javascript - 如何将属性添加到文本区域内的链接?

javascript - 一系列下拉菜单,由 jQuery 提供支持,可以隐藏和显示,但在 Chrome 中不行

javascript - jquery ui 对话框上的 window.getSelection 不会返回 Safari 中的选择