2017-04-26 68 views
0

我在sharepoint環境中使用SlickGrid來顯示和更新數據。爲了節省加載時間,我使用僅在前面行中使用的選項(具有超過50行的表)填充自動完成字段,然後我想讓用戶選擇單擊「元數據刷新按鈕「位於自動填充字段的頂部,該字段將去並獲取所有可用選項以重新填充自動完成字段。更新slickgrid自動填充字段而不重新渲染網格

<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,再見還是後來在第3列從,因爲他們選擇之前已經使用過。如果他們想要選項「冰雹!」出現在第2列中時,他們必須單擊第2列的「更新元數據」按鈕,該列將刷新該列中的所有單元格,幷包含所有可用但先前未使用的選擇。

我知道它並不理想,但它的一個要求已經給了我。

我知道如何將按鈕添加到列標題,並且正在更新網格需要的自動填充列的數據數組,但我不知道如何在不重繪整個網格的情況下更新列選項。

有什麼建議嗎?

回答

1

查覈在我的回購較新的例子:https://github.com/6pac/SlickGrid/wiki/Examples

這可能是最接近你想要什麼: http://6pac.github.io/SlickGrid/examples/example-autocomplete-editor.html

我過去所做的是創建單元節點的數據屬性存儲該對象,如:

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

從單元節點獲取對象非常容易。 但是,這需要正確清理屬性以避免內存泄漏。這應該可以在editor.destroy()中完成,但我認爲我沒有檢查過角落案例,例如編輯器在完成之前滾動離屏的情況。