我認爲你可以用一個額外的列做到這一點。
首先,您可以使用默認排序順序預填充此新列,然後允許用戶通過拖放jquery-ui來交互式修改它。
可以說這個用戶在表中有100個項目。您將順序欄中的值設置爲[1,2,3,...,99,100]。我建議你在原始表上運行一個腳本,將所有項目設置爲默認的排序順序。
現在回到你的例子中,用戶被展示41-60項:在瀏覽器中的初始演示文稿將按照[41,42,43,...,59,60]的順序排列。您可能還需要保存此子集中出現的最低順序(在本例中爲41)。或者更好的是,保存整個排名列表並按新順序還原完全相同的數字。這涵蓋了他們選擇一組尚未連續排列的記錄的情況,可能是因爲它們屬於其他人。
爲了演示我的意思:當他們在頁面中對它們進行重新排序時,您的javascript會將這些相同的數字重新分配給新順序中的子集。就像這樣:
item A : 41
item B : 45
item C : 46
item D : 47
item E : 51
item F : 54
item G : 57
那麼用戶他們改變這個順序,但重新分配的數字是這樣的:
item D : 41
item F : 45
item E : 46
item A : 47
item C : 51
item B : 54
item G : 57
如果子集爲連續這應該也行。
試試這個:http://www.kryogenix.org/code/browser/sorttable/ –
爲了澄清,你想讓用戶能夠重新排列INSIDE數據庫中的行嗎?這個訂單是否需要保存?您可能不想爲此添加新列,因爲這意味着您只能存儲訪問該表的所有內容的一個排序(因此,如果您擁有多個用戶,則存在問題)。如果您只需要在UI端重新排序並不需要保存排序,則可以緩存數據庫查詢結果並在客戶端應用程序中對其進行管理。 – pje