文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>动态载入树 (ASP+数据库)

动态载入树 (ASP+数据库)

时间:2010-04-17  来源:mx11

//**********************  index.asp ************************//

<<script language="Javascript">

<!--

var d1,d2;

function expand(id)

{

 var d=new Date();

 d1=d.valueOf();

 var s_id = eval("s" + id);

 var dir_id = eval("dir" + id);

 if(s_id.href != '')

 {

  //window.open(s_id.href);

  //or

  //top.frames['FrameName'].location.href = s_id.href;

 }

 switch(dir_id.open)

 {

  //改变"+","-"

  case "true":

  {

   with(dir_id)

   {

    innerText = "+";

    open = "false";

    className = 'dirclose';

   }

   if(document.getElementById("t" + id))

   {

    eval("t"+id).style.display = 'none';

    document.getElementById("load_" + id).style.display = 'none';

    return;

   }

   else

   {

    document.getElementById("load_" + id).style.display = 'none';

   }

   break;

  }

  case "false":

  {

   with(dir_id)

   {

    innerText = "-";

    open = "true";

    className = 'diropen';

   }

   

   document.getElementById("load_" + id).style.display = '';

   

   if(document.getElementById("t" + id))

   {

    eval("t" + id).style.display = '';

    eval("load_" + id).style.display = 'none';

    return;

   }

      else

   {

    document.frames['hifm'].location.replace("subtree.asp?id=" + id);

   }

      break;

  }

  default:dir_id.innerText = "."; dir_id.className = 'dirNode'; return;

 }

}

function ArrToHtml(ArrNode,nodeid)

{

 //输出到页面

 var node_html = '<table id="t' + nodeid + '" width="100%" border="0" style="position: relative; left: 18px;" cellspacing="0" cellpadding="0">';

 var str,opened,cls

 for (var i = 0; i < ArrNode.length; i++)

 {

  if (ArrNode[i].iChildren == 0)

  {

   str = '.';

   opened = 'no';

   cls = 'dirNode';

  }

  else

  {

   str = '+';

   opened = 'false';

   cls = 'dirclose';

  }

  node_html += '<tr><td id="node' + ArrNode[i].id + '" class="td_node" valign="top"><span class="' + cls + '" id="dir' + ArrNode[i].id + '" onclick="expand(' + ArrNode[i].id + ')" open="' + opened + '">' + str + '</span><span class="node" id="s' + ArrNode[i].id + '" onclick="expand(' + ArrNode[i].id + ')" title="' + ArrNode[i].Content + '" href="' + ArrNode[i].strLink + '">' + ArrNode[i].Content + '</span></td></tr>';

  if (ArrNode[i].iChildren > 0)

  {

   node_html += '<tr id="load_' + ArrNode[i].id + '" style="display: none"><td class="td_node"><table border="0" cellspacing="0" cellpadding="0" style="position: relative; left: 18; top: 0px"><tr><td class="td_node"><span class="dirNode">.</span><span class="load">Loading...</span></td></tr></table></td></tr>';

  }

 }

 node_html += '</table>';

 if (document.getElementById("load_" + nodeid))

 {

  document.getElementById("load_" + nodeid).style.display = "none";

  document.getElementById("node" + nodeid).innerHTML += node_html;

  var d=new Date();

  d2=d.valueOf();

  message.innerHTML = "耗时:"+(d2-d1)+"ms";

 }

}

-->

</script>

</head>

<body topmargin="0" leftmargin="0" scroll="yes">

<%

Dim conn,rs

Dim s,open,cls

On Error Resume Next

Set conn = Server.CreateObject("ADODB.Connection")

conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.mappath("tree/tree.mdb") & ";Persist Security Info=False"

Set rs = Server.CreateObject("ADODB.Recordset")

rs.Open "select *,(select count(*) from deeptree where parentid = T.id) as children from deeptree T where parentid=0 order by parentid",conn,1,3

%>

<div id="message" style="   </div>

<div align="center">

  <center>

    <table border="0" width="100%" cellspacing="0" cellpadding="0" height="100%" bgcolor="#F2F2F2">

      <tr>

        <td width="260" valign="top" align="left">

          <div id="treedir" style="overflow: auto; width: 30%; ">

         <table border="0" cellspacing="0" cellpadding="0" style="position: relative; left: 18px; top: 20px;" width="100%">

   <%

   Do While Not rs.EOF

    If rs("children") = 0 Then

     s = "."

     open = "no"

     cls = "dirNode"

    Else

     s = "+"

     open = "false"

     cls = "dirclose"

    End If

   %>

         <tr>

     <td id="node<% = rs("id")%>" class="td_node" valign="top"><span class="<% = cls %>" id="dir<% = rs("id") %>" onclick="expand(<%=rs("id")%>)" open="<% = open %>"><% = s %></span><span class="node" id="s<% = rs("id") %>" onclick="expand(<% = rs("id") %>)"  title="<% = Trim(rs("content")) %>" href="<% = Trim(rs("link")) %>"><% = rs("content") %></span>

     </td>

   </tr>

   <% If rs("children") > 0 Then%>

         <tr id="load_<% = rs("id") %>" style="display: none">

           <td class="td_node">

             <table border="0" cellspacing="0" cellpadding="0" style="position:relative;left:18;top:0" width="100%">

            <tr>

              <td class="td_node"><span class="dirNode">.</span><span class="load">Loading...</span>

                    </td>

                  </tr>

                </table>

              </td>

            </tr>

   <%End If%>

   <%

    rs.MoveNext

   Loop

   %>

          </table>

        </div>

      </td>

    </table>

  </center>

</div>

<%

Set rs = Nothing

Set conn = Nothing

%>

<iframe id='hifm' width=0 height=0 style="display: none" height="100%" width="100%"></iframe>

</body>

</html>

///****************** subtree.asp *********************//

<%Option Explicit%>

<script language="Javascript">

function NodeClass(id,Content,strLink,iChildren)

{

 //this.id=parseInt(id);

 this.id=id;

    this.Content=Content;

 this.strLink=strLink;

 this.iChildren=iChildren;

    //this.iChildren=parseInt(iChildren);

}

var ArrNode = new Array();

<%

Dim conn,rs,s,cls,href,Open

Dim nodeid,i

nodeid = Request.QueryString("id")

'On Error Resume Next

Set conn = Server.CreateObject("ADODB.Connection")

conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.mappath("tree/tree.mdb") & ";Persist Security Info=False"

Set rs = Server.CreateObject("ADODB.Recordset")

rs.Open "select *,(select count(*) from deeptree where parentid = T.id) as children from deeptree T where parentid=" & nodeid & "",conn,1,3

i=0

Do While Not rs.EOF

 %>

 ArrNode[<%=i%>] = new NodeClass(<%=rs("id")%>,'<%=trim(rs("content"))%>','<%=trim(rs("link"))%>',<%=rs("children")%>);

 <%

 i=i+1

 rs.MoveNext

Loop

Set rs = Nothing

%>

parent.ArrToHtml(ArrNode,'<% = nodeid %>');

-->

</script>

<%

Set conn = Nothing

%>

//********************* node.htc *********************//

<PUBLIC:COMPONENT>

<PUBLIC:ATTACH EVENT="onmouseover" ONEVENT="fos()"/>

<PUBLIC:ATTACH EVENT="onmouseout" ONEVENT="blu()"/>

<PUBLIC:ATTACH EVENT="onselectstart" ONEVENT="st()"/>

<script>

function fos(){

if(style.backgroundColor!='#ffffff'){

style.color="#000000"

style.border="1 solid #888888"

style.backgroundColor='#DDDDDD'

}

else

{style.color="#000000"

style.border="1 solid #999999"

style.backgroundColor='#ffffff'

}

}

function blu(){

if(style.backgroundColor!='#ffffff'){

style.color="#000000"

style.border="1 solid #f2f2f2"

style.backgroundColor='#f2f2f2'

}

else

{style.color="#000000"

style.border="1 solid #999999"

style.backgroundColor='#ffffff'

}

}

function st(){

return false;

}

</script>

</PUBLIC:COMPONENT>

//***************************  style.css ****************//

body{font-size:12px}

#txt{font-size: 12px; color: #000000;  font-family: Courier New;border:1 solid #3366cc}

#hrf{font-size: 12px; color: #000000;  font-family: Courier New;border:1 solid #3366cc}

#sb{font-size: 12px; color: #000000;  font-family: Courier New;background-color:#d2e8ff;border:1 solid #3366cc;cursor:hand}

.node{position:relative;left:2;padding:3 3 1 3;font-size:12px;font-family: Courier New;cursor:hand;border:1 solid #f2f2f2;behavior:url(css/node.htc)}

.load{position:relative;left:2;padding:1 3 1 3;font-size:12px;font-family: Courier New;cursor:hand;border:1 solid #999999;background-color:#f2f2f2;color:#999999}

.td_node{padding-left:2px;

 overflow:hidden;

 line-

 font-size:12px;

 padding-top:5px;

 width:11px;

 

 border:solid 1px black;

 background-color:#ffffff;

 cursor:hand;

}

span.dirclose

{

 line-

 font-size:9px;

 overflow:hidden;

 padding:2px;

 width:11px;

 

 border:solid 1px black;

 background-color:#ffffff;

 cursor:hand;

}

.dirNode

{

 font-weight:bold

 overflow:visible;

 font-size:9px;

 line-

 padding: 1px 1px 0px 3px;

 width:11px;

 

 border:solid 1px black;

 background-color:#ffffff;

 cursor:hand;

}

// 把 node.htc, style.css 保存与 css 目录下. index.asp subtree.asp 放与根目录.

另新建一ACCESS数据库 tree.mdb

表deeptree 结构为 id,content, parentid,link

相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载