為了方便使用分類我定義了一個分類表category裡面字段是
id(自動編號) cat_name(分類名) parent_id(父ID對應本表ID) cat_order(順序) is_show(是否顯示) u_id(這個用來區別是新聞分類還是產品分類還是其他分類)為了方便我將這些分類全部放在這張表中
在給客戶添加分類的時候結果有太多的分類本來前台顯示的時候將它們全部顯示出來了好長客戶提出修改意見要求將它們改成點擊大分類才可以將其子分類顯示出來並且每個分類下面還有一條虛線並且大分類前面有個圖片加號展開後要變成減號
<script>
function fd(idnum)
{
t=$(c+id+_)styledisplay;
if(t==none)
{
t=block;
t=images/fll_gif;
}
else
{
t=none;
t=images/fll_gif;
}
for(i=;i<=num;i++)
{
$(c+id+_+i)styledisplay=t;
$(d_+id)src=t;
}
}
function $(id)
{
return documentgetElementById(id);
}
</script>
這是asp無限級顯示分類代碼並給這些分類加上id
<%
功能asp無限級顯示分類+js顯示與隱藏
作者wangsdong
開發
參數parent_id為父IDstype為新聞產品文章大分類
function cat(parent_idstype)
set rs =servercreateobject(adodbrecordset)
sql=select cat_namecat_idparent_id from category where parent_id=&parent_id& and u_id=&stype& and is_show= order by cat_order asc
set rs=connexecute(sql)
If rseof Then
Else
if(depath>) then
display=none
else
display=block
end if
dim j
j=
do while not rseof
cat_name = rs(cat_name)
cat_id = rs(cat_id)
parent_id=rs(parent_id)
******************下面是你要顯示的******************
m=
sql=select count(cat_id) as t from category where parent_id=&cat_id& and u_id=&stype&
set rs=servercreateobject(adodbrecordset)
set rs=connexecute(sql)
if not rseof then
m=rs(t)
else
m=
end if
rsclose
if(depath<=) then
mgif=images/gif
a=block
else
if(m>) then
mgif=images/+gif
else
mgif=images/gif
end if
if(depath=) then
a=block
else
a=none
end if
end if
catstr=catstr & <tr id=c&parent_id&_&j& display:&a&><td width= align=center valign=middle class=dotted_class><img src=&mgif& width= height= id=d_&cat_id&></td><td class=dotted_class leftcatcss>
if(m>) then
catstr=catstr&<a javascript:void(); _fcksavedurl=javascript:void(); _fcksavedurl=javascript:void(); onclick=fd(&cat_id&&m&)> &vbnewline
else
catstr=catstr&<a &cat_id& target=_blank>&vbnewline
end if
for i= to depath
catstr=catstr&
Next
catstr=catstr&cat_name&</a></td></tr>&vbnewline
m=
sql=select cat_namecat_id from category where parent_id=&parent_id& and u_id=&stype& order by cat_order asc
set rs=servercreateobject(adodbrecordset)
set rs=connexecute(sql)
if not rseof then
depath=depath+
call cat(cat_idstype)
end if
rsclose
set rs=nothing
depath=depath
******************上面是你要顯示的******************
j=j+
rsmovenext
loop
End If
rsclose
set rs=nothing
end Function
%>
在使用這個函數之前加上
catstr=
然後再call下面的虛線加在css中的dotted_class裡面這樣就搞定了
注意這裡得到的是一個表格的行要和其他行放在一起不要加到td裡面去了
From:http://tw.wingwit.com/Article/program/net/201311/13791.html