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>