2015-03-31 38 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> 
相关问题