大家帮我看一下这段代码,为什么节点装得顺序不对

huguguhu 2002-06-10 10:19:24
这里是源代码:
瀛樺偍杩囩▼

CREATE PROC sp_ListFile(@Child_node int)

As

SET NOCOUNT ON

--declare var

DECLARE @lvl smallint --灞傛鍏崇郴

DECLARE @c_ID int

DECLARE @article bit --鏄惁涓烘枃绔犵殑鏍囧織

DECLARE @title varchar(150) --鏍囬


--create temporary table

CREATE TABLE #stack (Child_node int,Lvl smallint)


--create target table

CREATE TABLE #FileList
(lvl smallint,
Child_node_ID int,
Article bit,
Title varchar(150) )


--initial

INSERT INTO #stack VALUES(@Child_node,0)

SELECT @Lvl = 0


--main loop

WHILE @Lvl > -1

BEGIN

IF EXISTS(SELECT * FROM #stack WHERE Lvl = @Lvl)

BEGIN

SELECT @Child_node = Child_node
FROM #stack
WHERE Lvl = @Lvl

SELECT @article = article,@title = title
FROM some_table
WHERE Child_node = @Child_node

INSERT INTO #FileList
VALUES(@Lvl,@Child_node, @article,@title)

DELETE FROM #stack
WHERE Lvl = @Lvl AND Child_node = @Child_node

INSERT INTO #stack
SELECT Child_node,@Lvl + 1
FROM some_table
WHERE Parent_node = @Child_node
IF @@ROWCOUNT > 0
SELECT @Lvl = @Lvl + 1

END

ELSE

SELECT @Lvl = @Lvl - 1

END

DELETE FROM #FileList
WHERE Lvl = 0
SELECT * FROM #FileList


杈撳嚭缁撴灉锛?

lvl Child_node Article Title

1 1 0 Program

2 2 0 Visual Basic

3 5 1 ADO Control

2 3 0 Power Builder

2 4 0 C++ Builder



鐪嬩笅鍒椾唬鐮侊細

Dim GetRSString
Dim cnn
Dim rs
Dim l_ID
l_ID = "1" '琛ㄧず鏍硅妭鐐?

Set cnn = Server.CreateObject("ADODB.Connection")
Set rs = Server.CreateObject("ADODB.RecordSet")
cnn.Open "Provider=SQLOLEDB;.......................鐣?
rs.Open "sp_listfile " & l_ID,cnn

GetRSString = rs.GetString(2,,"?quot;","~~") 'adClipString
rs.Close
Set rs = Nothing
cnn.Close
Set cnn = Nothing

Response.Write "<FORM id='rs' name='rs'>" &_
"<INPUT type='hidden' id='rsCache' name='rsCache' value='" & GetRSString & "'></FORM>" &_
"<SCRIPT language=JavaScript src='Listfile.js'></SCRIPT>" &_
"<Script language=Javascript>LoadRecords(" + l_ID + ");</Script>"

鍦ㄤ笂闈㈢殑浠g爜涓紝鐢?GetString 鐨勬柟娉曞緱鍒颁簡浠??quot;鍜寏~ 鍒嗛殧鐨勫瓧绗︿覆锛屽苟鐢ㄩ殣钘忚〃鍗曡繘琛屽瓨鍌ㄣ€?Listfile.js 閲岀殑鑴氭湰瀹炵幇浜嗘垜浠兂瑕佸緱鍔熻兘锛孡oadRecords 鏄叾涓殑涓€涓嚱鏁般€?

2. Listfile.js 涓殑鑴氭湰

杩欐槸鍏ㄩ儴浠g爜锛?

function ToggleDisplay(oButton, oItems)
{
if ((oItems.style.display == "") || (oItems.style.display == "none"))
{
oItems.style.display = "block";
oButton.src = book_open.src;
}
else
{
oItems.style.display = "none";
oButton.src = book_close.src;
}
}

function LoadRecords(l_ID)
{
var strRecords=document.all("rsCache").value;
var arrRecords=strRecords.split("~~");
var arrFields;
var Current_level;
var Current_ID;
var strTemp;
var strList;
var Prior_ID;
var Prior_level=-1;
var i;
var j;
Prior_ID=l_ID;
strList = "<TABLE><TR><TD height=300 valign=top class=Newscontents><!--" + l_ID + "-->";
for (i=0;i<arrRecords.length;i++)
{
arrFields=arrRecords[i].split("?quot;");
Current_level = arrFields[0];
Current_ID = arrFields[1];
if (arrFields[2] == 0)
{
strTemp = "<DIV><IMG SRC='images/plus.gif' ID='i_" + Current_ID +
"' onclick='ToggleDisplay(i_" + Current_ID + ",f_" +
Current_ID + "_d);' width=31 height=15 style='position:relative;left:" +
(Current_level*17) + ";top:3;cursor:hand;'> <A ID='f_" + Current_ID +
"' style='position:relative;left:" + (Current_level*17) +
";cursor:hand;' onclick='ToggleDisplay(i_" + Current_ID + ",f_" +
Current_ID + "_d);'>" + arrFields[3] + "</A></DIV><DIV ID='f_" +
Current_ID + "_d' style='display: none;'><!--" + Current_ID + "--></DIV>";
if (Current_level > Prior_level)
{
strTemp += "<!--LEVEL" + Current_level + "-->";
strList = strList.replace("<!--" + Prior_ID + "-->",strTemp);
}
else
{
if (Current_level == Prior_level)
{
strTemp += "<!--LEVEL" + Current_level + "-->";
strList = strList.replace("<!--LEVEL" + Current_level + "-->",strTemp );
}
else
{
for (j=parseInt(Current_level)+1;j<=Prior_level;j++)
{
strList = strList.replace("<!--LEVEL" + i + "-->","")
}
strTemp += "<!--LEVEL" + Current_level + "-->";
strList = strList.replace("<!--LEVEL" + Current_level + "-->",strTemp );
}
}
}
else
{
strTemp = "<DIV><IMG SRC='images/message.gif' width=11 height=14 style='position:relative;left:" +
(Current_level*17+20) + ";top:2;cursor:hand;'> ";
strTemp += "<A ID='f_" + Current_ID + "' HREF='page.asp?article=" + arrFields[3] +
"' TARGET=MAIN style='position:relative;left:" + (Current_level*17 +16) +
";cursor:hand;'>" + arrFields[3] + "</A></DIV><!--LEVEL" + Current_level + "-->";
if (Current_level > Prior_level)
strList = strList.replace("<!--" + Prior_ID + "-->",strTemp);
else
strList = strList.replace("<!--LEVEL" + Current_level + "-->",strTemp);
}

Prior_ID = Current_ID;
Prior_level = Current_level;
}
strList += "</TD></TR><TR><TD height=10><img style='display:none;' " +
"src='images/plus.gif' id=book_close><img style='display:none;' " +
"src='images/minus.gif' id=book_open> </TD></TR></TABLE>";
document.write(strList);
}
...全文
51 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
huguguhu 2002-06-11
  • 打赏
  • 举报
回复
我急急急急
huguguhu 2002-06-11
  • 打赏
  • 举报
回复
节点顺序不对,当层次多了以后,除了第一个节点外,其余节点下只有一个节点,都跑到第一个节点下。
孟子E章 2002-06-10
  • 打赏
  • 举报
回复
有什么问题呀?

87,996

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧