我在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列的“更新元数据”按钮,这将刷新该列中包含所有可用但以前未使用的选择的所有单元格。
我知道它并不理想,但它已经给了我一个要求。
我知道如何向列标题添加按钮,我正在更新网格为自动完成列所需的数据数组,但我对如何在不重绘整个网格的情况下更新列选择感到茫然。
有什么建议吗?
答案 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()
中完成,但我不认为我已经检查了角落情况,例如编辑器在完成之前滚动到屏幕外。