将函数添加到现有的JqGrid事件中

时间:2014-08-18 09:26:36

标签: jquery jqgrid

所以我的应用程序使用多个网格,但我将代码分成2个文件,一个是网格独有的,另一个是所有网格共享的常用函数。

现在问题是,我定义了唯一文件中的一些事件,例如,我在一个仅网格文件中定义了loadComplete事件,因为这些函数仅对该网格是唯一的,而对于其他网格则不是。但是现在当我尝试添加适用于公共函数文件中所有网格的常见loadComplete函数时,它对我来说不起作用。

如果我在每个loadComplete中定义了常用函数,那么我可以使它工作,但这会破坏在一个文件中分离唯一到网格函数和在另一个文件中分离共享函数的目的(为了维护目的)。 / p>

所以我想知道有没有办法在公共函数文件中的loadComplete事件中添加额外函数,当loadComplete事件已经应用于网格本身唯一的每个文件中时。

我尝试了以下从这里得到的例子,但似乎没有对我有用

$.jqgrid.extend({})

$(function() {})

(function($){})

jQuery.extend(jQuery.jgrid.defaults, {})

1 个答案:

答案 0 :(得分:1)

如果您仔细阅读我的答案,您会看到我使用其他一些术语作为官方的jqGrid文档。我将loadComplete命名为回调功能,而不是事件处理程序。可以定义仅一次回调函数loadComplete。另一方面,可以使用jQuery事件,如jqGridLoadComplete(请参阅here),该事件在jqGrid的4.3.2版本中引入。顺便说一句,jqGrid代码的相应修改由我做出。我在所有活动中发布了很多拉请求。

您可以在the answer中找到使用jqGridLoadComplete事件的片段。顺便说一句,您可以在创建网格之前将事件jqGridLoadComplete绑定到空<table>元素 。只有这样做,即使是初始填充网格,也会确保jqGridLoadComplete被触发。

使用jQuery事件(如jqGridLoadComplete)的主要优点:可以定义多个事件句柄。因此,您可以实现所需的方案。顺便说一下,也存在jqGridAfterLoadComplete事件。首先将被触发jqGridLoadComplete事件并且将执行所有事件处理程序,然后将调用loadComplete回调,最后将触发jqGridAfterLoadComplete事件。您应该自己决定哪一个(jqGridLoadCompletejqGridAfterLoadComplete)更适合您实施的方案。