更新slickgrid自动完成字段而不重新渲染网格

时间:2017-04-26 21:59:53

标签: autocomplete slickgrid

我在sharepoint环境中使用SlickGrid来显示和更新数据。为了节省加载时间,我使用仅在之前的行中使用的选项(包含超过50行的表)填充自动完成字段,然后我想让用户选择单击“ “元数据刷新按钮”位于自动填充字段的顶部,用于获取所有可用选项以重新填充自动完成字段。

<table><tr><td>[ TextField ] </td><td>[ AutoComplete1 ] </td><td>[ AutoComplete2]</td></tr>
<tr><td>Entry1</td><td>Hello</td><td>Goodbye</td></tr>
<tr><td>Entry2</td><td>Hi</td><td>Later</td></tr>
</table>

因此,如果用户要创建一个新行,他们将在第2列中选择Hello和Hi,在第3列中选择Goodbye或Later,因为它们之前已被使用过。如果他们想要选择“Hail!”要显示在第2列中,他们必须单击第2列的“更新元数据”按钮,这将刷新该列中包含所有可用但以前未使用的选择的所有单元格。

我知道它并不理想,但它已经给了我一个要求。

我知道如何向列标题添加按钮,我正在更新网格为自动完成列所需的数据数组,但我对如何在不重绘整个网格的情况下更新列选择感到茫然。

有什么建议吗?

1 个答案:

答案 0 :(得分:1)

查看我的仓库中的新示例:https://github.com/6pac/SlickGrid/wiki/Examples

这可能与您想要的最接近: http://6pac.github.io/SlickGrid/examples/example-autocomplete-editor.html

我过去所做的是创建单元节点的数据属性来存储对象,如:

$jqacContainer.data('queryautocomplete', jqac);

然后很容易从单元节点获取对象。 但是,这需要对属性进行适当的清理以避免内存泄漏。这应该可以在editor.destroy()中完成,但我不认为我已经检查了角落情况,例如编辑器在完成之前滚动到屏幕外。