实现树型结构(二)


实现树型结构(第二部分)
作者:ACE 最后更新:06/08/2000 类别:原创

在上一部分,我们讨论了如何读取数据,并得到了表示层次关系的结果集。在这一部分,我们来看如何用脚本语言实现类似 MSDN 的界面。

可以在服务器端也可以在客户端完成这样的功能,这就要看需要了。在服务器端完成需要占用服务器的处理时间及相关资源,在客户端完成需要浏览器支持脚本语言(一般是 JavaScript),并要下载执行脚本。

在我们的示例里采用客户端执行脚本的方法。

数据挖掘交友



1. 将数据发送到浏览器

看下列代码:

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>"

在上面的代码中,用 GetString 的方法得到了以 ?quot;和~~ 分隔的字符串,并用隐藏表单进行存储。 Listfile.js 里的脚本实现了我们想要得功能,LoadRecords 是其中的一个函数。

2. Listfile.js 中的脚本

这是全部代码:

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);
}


终于写完了,大家自己看吧,如果你有更好的主意别望了告诉我。
[数据挖掘专家] [数据挖掘研究院] [数据挖掘论坛] [数据挖掘实验室]
上一篇:使用@IDENTITY
下一篇:实现树型结构(一)
最新评论共有 0 位网友发表了评论 , 查看所有评论
发表评论( 不能超过250字,需审核,请自觉遵守互联网相关政策法规。 )
匿名?
数据挖掘网站导航 数据挖掘论坛导航
  • 数据挖掘工具
  • 数据挖掘论坛
  • DataCruncher - Cognos
  • MineSet - MathSoft
  • Intelligent Miner - GainSmarts
  • Sqlserver - SAS - Clementine
  • CART - Weka - WizSoft
  • NeuroShell - ModelQuest
  • data mining tools - Darwin
  • 数据挖掘交友
  • 数据挖掘博客
  • 数据挖掘工具
  • 数据挖掘资源
  • 数据挖掘技术算法
  • 数据挖掘相关期刊、会议
  • 研究院联盟合作专区
  • 数据挖掘基础与相关技术
  • 数据挖掘厂商与就业
  • 数据挖掘研究者乐园
  • 知名厂商数据挖掘工具资料
  • 国内数据挖掘实验室
  • Foreign Data Mining Lab
  • 热点关注
  • MDAC2.8下载!
  • 软件架构的十大错误
  • 没啥好东西了,贴一段我现在在用的产生随机
  • ASP+JS处理复杂表单的生成与验证
  • 无法加载DLL(OCI.DLL),如何解决?
  • 学习ASP有用的代码(很有用哦!)
  • 动态web开发语言项目 驳“ASP低能论”
  • 郁闷的System.Web.Mail
  • 利用ASP远程注册DLL的方法
  • 改进的ASP备份SQLServer数据库
  • 论坛最新话题
  • Foundations of Statistical Natural Langu
  • Game Theory meet Data Mining: A Recent P
  • System Building: How does it help or hin
  • 数据挖掘与Clementine培训
  • 新手报到
  • 求 SASEM 客户流失预测分析
  • 数据挖掘工程师/搜索研究院—北京——无线
  • 数据挖掘入门介绍(如何着手数据挖掘)
  • Information Overload Survey Results
  • The INEX 2005 Workshop on Element Retrie
  • 相关资讯
  • 软件架构的十大错误
  • JavaScript基础教程第四课
  • 改进的ASP备份SQLServer数据库
  • MVC构架实现之ASP
  • .net入门一些常见的东西
  • VisualStudio.NET2003不能调试ASP.Net程序
  • X.U.S.T原创:自己搭建IIS找ASP程序漏洞
  • 郁闷的System.Web.Mail
  • ASP错误代码总结
  • 从XML中读取数据!(Asp.net学习一)
  • 数据挖掘实验室资料
  • 数据挖掘博客地址
  • 数据挖掘实验室网站地址
  • Prepare for Medicare audits by using dat
  • 注册成为SAS用户与爱好者俱乐部会员
  • 水南梅
  • 明日烟
  • 新人报道
  • 下载
  • 厦门服务器托管,450元/月—0592-5177319 高
  • 买空间送域名--0592-5177319 高静