2015-03-31 39 views
0

我們在名稱爲「列表」的表中有數據庫中子級和父級的未知級別。每條記錄有Id標題父母(父母的身份證)。頂級項目的父項爲0.客戶端層次結構排序:來自數據庫的子級父級列表,具有未知級別數

我們希望打印所有排序如何處理子項在其父項下的行。有許多解決方案可以使用服務器端腳本生成遞歸列表。但是我們想要以可視化的方式對客戶端進行排序(客戶端),以將客戶端的服務器負載轉移到客戶端。

回答

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> 
相關問題