2013-05-01 119 views
0

在我的项目中,我使用jQuery Datatables插件,我已经实现了列过滤器和可编辑插件。所有最新版本。jQuery Datatables列过滤器选择过滤器选项不更新与可编辑

问题是,在向表中添加新值(通过添加新记录或更新现有值)后,相应列的下拉筛选器不会更新。即无论对表中的记录应用了哪些更改,选择都保持不变。

在我的研究中,我发现了一个演示(http://jquery-datatables-editable.googlecode.com/svn/trunk/columnFilter.html),演示了上述插件的集成,但仅限于文本框过滤器。所以我已经下载了这个网页,并试图只改变一个文本过滤器来选择。然而这没有成功。

回答

0

我通过更改列筛选插件的源代码解决了这个问题。我替换为代码行397:

if (oSettings.iDraw == 2 || ajaxCall == true && oSettings.sAjaxSource != null && oSettings.sAjaxSource != "" && !oSettings.oFeatures.bServerSide) { if (iColumn == 3) { ajaxCall = false; }

iColumn与3相比,由于第一下拉是在第四表列。接下来,变量ajaxCall指出某行被编辑,添加或删除。因为每当为此目的调用ajax时,我都会将该变量更改为true。为了安全,我在读取插件源代码之前将变量初始化为false。

0

无论何时表行更改,您都需要重新设置可编辑功能。

  1. $('。editable')。editable('disable');新选择选项
  2. 重新初始化

你可以看到如何实现该页面中的启用/禁用功能: How to Enable/Disable JEditable

+0

感谢您的及时回复。值得注意的是它并不能解决我的问题。我不确定您是否理解我正在使用可编辑来编辑行而不是JEditable。因此,我不初始化JEditable,并且不可能实现给定的启用/禁用功能。 – 2013-05-02 09:08:36

+0

我的坏... :(仍然,我认为你的问题依赖于不重新初始化你的dom元素。例如尝试销毁并重新创建具有可编辑功能的数据表。可能不是最好的解决方案,但至少 – 2013-05-02 15:51:25

+0

根据此问题:http://code.google.com/p/jquery-datatables-column-filter/issues/detail?id=119无法使用列成功重新创建数据表过滤插件。 – 2013-05-03 07:57:29