Zapeo sam na treeview kontroli, pa ako može pomoć oko jedne stvari...
Cijelu priču radim u asp-u, s time da će mi vizuelni
izgled kontrolirati css, a otvaranje i zatvaranje nodova
će kontrolirati par linija js.
Slijedeće sam spojio tablicu samu sa sobom, sql je tu:
strSQL="SELECT oNode.oNodeItem, oNode.ID, oNode.childID"
strSQL = strSQL & " FROM oNode LEFT JOIN oNode AS oNode_1 ON oNode.ID=oNode_1.childID"
strSQL=strSQL & " GROUP BY oNode.oNodeItem, oNode.ID, oNode.childID"
strSQL=strSQL & " ORDER BY oNode.oNodeItem, oNode.ID;"
e sad nastupa noćna mora, ili možda i nije, možda je riješenje jednostavno, a ja ga
jednostavno ne vidim.
kad zavrtim sve to u do while not petlji, dobijam ono što trebam, neovisno
o redoslijedu unošenja podataka u tablicu, u obliku:
Item 1
Item 1.1
Item 1.1.1
Item 1.2
..itd
Naime, koristim i jednu funkciju kojom provjeravam da li tenutačni record u bazi
je single-level ili je on parent node i na osnovu te funkcije generiram html strukturu
za ispis treeview-a
Kad to zavrtim u petlji
set rs=con.Execute(strSQL)
Do While not Rs.EOF
if isParent=True then
' struktura koja se treba ispisati
oNodeItem="<li class=""closed""><a href=""#"">" & Rs("oNodeItem") &"</a>" & vbCrlf
oNodeItem=oNodeItem & "<ul>" & vbCrlf
ELSE
oNodeItem="<li><a href=""#"">" & Rs("oNodeItem") & "</a></li>" & vbCrlf
End if
Response.write oNodeItem
Rs.MoveNext
Loop
set rs=Nothing
Dobijem ono što mi treba, ali ima jedan problem, ne znam kako da
zatvorim </ul></li> na kraju, tj na mjestima gdje mi kreće novi oNode
Pokušavao sam razne trikove ali bezuspješno.
Evo kak to izgleda:
<ul>
<li class="closed"><a href="#">Item 1</a>
<ul>
<li><a href="#">Item 1.1</a></li>
<li><a href="#">Item 1.2</a></li>--->nakon ove linije treba ubaciti </ul></li>
<li class="closed"><a href="#">Item 2</a>
<ul>
<li><a href="#">Item 2.1</a></li>--->nakon ove linije treba ubaciti </ul></li>
<li><a href="#">Item 3</a></li>
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum