0
我們在名稱爲「列表」的表中有數據庫中子級和父級的未知級別。每條記錄有Id,標題和父母(父母的身份證)。頂級項目的父項爲0.客戶端層次結構排序:來自數據庫的子級父級列表,具有未知級別數
我們希望打印所有排序如何處理子項在其父項下的行。有許多解決方案可以使用服務器端腳本生成遞歸列表。但是我們想要以可視化的方式對客戶端進行排序(客戶端),以將客戶端的服務器負載轉移到客戶端。
我們在名稱爲「列表」的表中有數據庫中子級和父級的未知級別。每條記錄有Id,標題和父母(父母的身份證)。頂級項目的父項爲0.客戶端層次結構排序:來自數據庫的子級父級列表,具有未知級別數
我們希望打印所有排序如何處理子項在其父項下的行。有許多解決方案可以使用服務器端腳本生成遞歸列表。但是我們想要以可視化的方式對客戶端進行排序(客戶端),以將客戶端的服務器負載轉移到客戶端。
對孩子和家長的客戶端排序是個好主意,因爲將服務器負載轉移到客戶端。此客戶端腳本也是非遞歸的,只需一個循環即可解決問題!
第1步:
打印所有元素作爲HTML DIV無級架構。然而,我們說這個菜單是什麼的東西和孩子的父母(設置爲div的類)。我們還在內存中保存一個ID列表,其名稱爲父列表以便稍後在客戶端腳本中使用。
假設RS作爲記錄和objcon作爲連接對象(在VBScript):
<%
parentlist="[0,"
sql="select * from list"
rs.open sql,objcon
while not rs.eof
parentlist=parentlist&"rs("id")&","
%>
<div class="child<%=rs("parent")%> parent<%=rs("id")%>"><%=rs("title")%></div>
<%
rs.movenext
wend
rs.close
'removing last comma and closing array
parentlist=Left(parentlist,Len(parentlist)-1)&"]"
%>
,如果你想它是設置填充的DIV(S)好主意讓孩子們視覺化,而不是將它們列在父母的下方。
第2步:通過循環雖然parentlist的陣列
,分離每一個家長的孩子,它們添加到它們的父(使用jQuery):
<script type="text/javascript">
var parentlist=<%=parentlist%>;
for (i = 0; i < parentlist.length; i++)
{
$(".child"+parentlist[i]).detach().appendTo(".parent"+parentlist[i]);
}
</script>