MSDN CSDN 导航树效果用ASP.Net(C#) + JavaScript 怎么实现??

ouyangibing 2005-01-20 02:24:29
MSDN CSDN 导航树效果用ASP.Net(C#) + JavaScript 怎么实现??
...全文
200 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
hedonister 2005-01-20
  • 打赏
  • 举报
回复
<%@ Page language="c#" Codebehind="WebFORM2.aspx.cs" AutoEventWireup="false" Inherits="WebApplication5.WebFORM2" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
<HEAD>
<title>WebFORM2</title>
<meta name="GENERATOR" Content="Microsoft Visual Studio 7.0">
<meta name="CODE_LANGUAGE" Content="C#">
<meta name="vs_defaultClientScript" content="javascript">
<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
</HEAD>
<body MS_POSITIONING="GridLayout">
<FORM id="WebFORM2" method="post" runat="server">
<FONT face="宋体"></FONT>
</FORM>
<%
string ParentNode;
ParentNode = Request.QueryString["pnode"];
//Response.Write(ParentNode.Replace("_",""));
int i;
int j;
string nSpace="";
j= ParentNode.Length - ParentNode.Replace("_","").Length;
for (i=0;i<j;i++)
nSpace = nSpace + " ";
string sHTML ="";
i=0;
System.Data.OleDb.OleDbConnection oleDbConnection1 = new System.Data.OleDb.OleDbConnection();
oleDbConnection1.ConnectionString =@"Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=Test;Data Source=TRIATON\PSQL2KE";
oleDbConnection1.ConnectionString =@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath("/dvbbs") + @"\Tree.mdb;Persist Security Info=False";
oleDbConnection1.Open();
System.Data.OleDb.OleDbCommand OleDbCommand1 = new System.Data.OleDb.OleDbCommand("select *,(select count(*) from tree where parentid =T.id ) as Children from tree T where parentid = " + Request.QueryString["PID"],oleDbConnection1) ;
System.Data.OleDb.OleDbDataReader OleDbDataReader1 = OleDbCommand1.ExecuteReader();
while (OleDbDataReader1.Read())
{
sHTML = sHTML + "<div id='" + ParentNode + "_" + (i + 1).ToString() + "'>" + nSpace + "<a href='#'";
if (System.Convert.ToInt64(OleDbDataReader1["children"])>0)
sHTML = sHTML + " onClick='ExpandNode(" + ParentNode + "_" + (i + 1).ToString() + "," + OleDbDataReader1["id"] + ")'>+";
else
sHTML = sHTML + ">-";
sHTML = sHTML + "</a>\\n" + "<a href='#'";
if (System.Convert.ToInt64(OleDbDataReader1["children"])>0)
sHTML = sHTML + " onDblClick='ExpandNode(" + ParentNode + "_" + (i + 1).ToString() + "," + OleDbDataReader1["id"] + ")'";
sHTML = sHTML + ">" + OleDbDataReader1["id"] + ": " + OleDbDataReader1["remark"] + "</a></div>";
if (System.Convert.ToInt64(OleDbDataReader1["children"])>0)
sHTML = sHTML + "<div id='" + ParentNode + "_" + (i + 1).ToString() + "_0' style='display: none' loaded='no'>" + nSpace + " 正在加载 ...</div>";
i++;
}
Response.Write(sHTML);
%>
<script>
var x = eval('parent.' + '<% =Request.QueryString["pnode"] + "_0"%>' ) ;
x.innerHTML="<% =sHTML %>";
</script>
</body>
</HTML>
hedonister 2005-01-20
  • 打赏
  • 举报
回复
实际还是传统 CGI、ASP 的思想,没有使用Codebehind="WebFORM1.aspx.cs",仍然采取了 B/S 混合(HTML/C#)脚本的方式:

<%@ Page language="c#" Codebehind="WebFORM1.aspx.cs" AutoEventWireup="false" Inherits="WebApplication5.WebFORM1" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
<HEAD>
<title>WebFORM1</title>
<meta name="GENERATOR" Content="Microsoft Visual Studio 7.0">
<meta name="CODE_LANGUAGE" Content="C#">
<meta name="vs_defaultClientScript" content="javascript">
<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
</HEAD>
<body MS_POSITIONING="GridLayout">
<FORM id="FORM1" method="post" runat="server">
</FORM>
<FONT face="宋体"></FONT><iframe width="100%" height="100" id="hiddenframe"></iframe>
<script>
function ExpandNode(ParentNode,ParentId){
var NodeX = eval(ParentNode.id + '_0');
if (NodeX.style.display == 'none')
{
NodeX.style.display="block";
if (NodeX.loaded == 'no')
{
document.frames['hiddenframe'].location.replace("http://localhost/webservice/WebApplication5/WebFORM2.aspx?PID=" + ParentId + "&PNode=" + ParentNode.id);
NodeX.loaded = 'yes';
}
}
else
{
NodeX.style.display='none';
}
}
</script>
<CENTER>
<TABLE border="1" width="20%" height="60%">
<TR>
<TD>
<DIV style="OVERFLOW: auto;WIDTH: 100%;HEIGHT: 100%">
<TABLE width="300%">

<TR>
<TD>
<%
System.Data.OleDb.OleDbConnection oleDbConnection1 = new System.Data.OleDb.OleDbConnection();
oleDbConnection1.ConnectionString =@"Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=Test;Data Source=TRIATON\PSQL2KE";
oleDbConnection1.ConnectionString =@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath("/dvbbs") + @"\Tree.mdb;Persist Security Info=False";
oleDbConnection1.Open();
System.Data.OleDb.OleDbCommand OleDbCommand1 = new System.Data.OleDb.OleDbCommand("select *,(select count(*) from tree where parentid = T.id) as children from tree T where rootid = id",oleDbConnection1) ;
System.Data.OleDb.OleDbDataReader OleDbDataReader1 = OleDbCommand1.ExecuteReader();
int i = 0;
while (OleDbDataReader1.Read())
{
%><div id='Node_<% = i %>'><a href='#'

<%if (System.Convert.ToInt64(OleDbDataReader1["children"])>0) {%>
onClick='ExpandNode(Node_<% = i %>,<% =OleDbDataReader1["id"] %>)'>+</a>
<%;}
else {%>
>-</a><% ;}%>
<a href='#'
<%if (System.Convert.ToInt64(OleDbDataReader1["children"])>0)
{%>
onDblClick='ExpandNode(Node_<% = i %>,<% =OleDbDataReader1["children"]%>)'
<%} %>
>
<% =OleDbDataReader1["children"]%></a>
</div>
<div id='Node_<% = i %>_0' style='display: none' loaded='no'>
正在加载 ...
</div>
<%
i++;
}

%>






</TD>
</TD>
</TR>
</TABLE>
</DIV></TD></TR></TABLE>
</CENTER>
</body>
</HTML>

JafyLiu 2005-01-20
  • 打赏
  • 举报
回复
用MS 的那个树控件。
名称:快速入门 地址:http://chs.gotdotnet.com/quickstart/ 描述:本站点是微软.NET技术的快速入门网站,我们不必再安装.NET Framework中的快速入门示例程序,直接在网上查看此示例即看。 名称:微软官方.NET指导站点 地址:http://www.gotdotnet.com/ 描述:上面的站点是本站的一个子站点,本站点提供微软.NET官方信息,并且有大量的用户源代码、控件下载,微软.NET开发组的人员也经常在此站点发表一些指导性文章。 名称:SourceForge 地址:http://www.sourceforge.net 描述:世界上最大的Open Source项目在线网站,上面已经有.NET的各种大型Open Source项目上千件,包括SharpDevelop、NDoc、Mono等都是在此站点发布最新源代码信息。 名称:CodeProject 地址:http://www.codeproject.com 描述:很多非官方的中小型示例源代及文章,相当全面,基本上我们想要的各种方面的资料都可以在此处查找。 名称:Fabrice's weblog 地址:http://dotnetweblogs.com/FMARGUERIE/Story/4139.aspx 描述:这是一个WebLog形式的在线日志网站,定期更新,包括.NET相关的工具、混淆器、反编译器等各种信息,十分值得收藏。 名称: 地址:http://www.aspalliance.com/aldotnet/examples/translate.aspx 描述:c#翻译为vb.net,提供一个文本框,将你的C#源代码贴进去,就可以帮你翻译成VB.NET语法。 名称:CSharpHelp 地址:http://www.csharphelp.com 描述: 专业的C#语言在线帮助网站,主要提供C#语言方面的技术文章。专业性很强。 名称:DotNet247 地址:http://www.dotnet247.com 描述:最好的索引网站,分别按照门类及命名空间的索引,也提供了Microsoft KB知识库。 名称:ASP.NET 地址:http://www.asp.net 描述:微软.NET webform的老巢,资料和实例代码都非常难得。 名称:微软.NET Winform 地址:http://www.windowsforms.net/ 描述:微软.NET Winform的老巢。 名称:微软 KnowledgeBase 地址:http://support.microsoft.com/ 描述:微软知识库,开发的时候遇到的怪问题,可能会在这里找到答案。 名称:MSDN 地址:http://msdn.microsoft.com/ 描述:这个就不用多说了吧,虽然出了中文MSDN,但是资料还是不够全,英文的就什么都有了。 名称:HotScripts 地址:http://www.hotscripts.com/ 描述:Welcome to HotScripts.com, the net’s largest PHP, CGI, Perl, javascript and ASP script collection and resource web portal. We currently have 24,004 scripts across 11 different programming languages and 1,240 categories, as well as links to books, articles, as well as programming tips and tutorials. 名称:ASPAlliance 地址:http://www.aspalliance.com/ 描述:提供相当丰富的文章和示例代码,思路匮乏的时候可以找找思路 名称:CSDN文档中心 地址:http://dev.csdn.net/ 描述:中文的,资料还算丰富,可以作为国内首选。 名称:DOTNET中华网 地址:http://www.aspxcn.com/ 描述:2002-2003年的时候这个站点很不错的,不过现在好像管理不得力,有点疲软,资料更新也不过及时,论坛里人也不够热心了,因为希望它好起来,所以列出来。资料都比较老,不过有些D版的东西还可以。提供很多学习代码。 名称:中国DotNet俱乐部 地址:http://www.chinaspx.com/ 描述:有点公司背景的网站,很健壮,资料更新及时,比较丰富。论坛解答也不错。 名称:【孟宪会之精彩世界】 地址:http://dotnet.aspx.cc/ 描述:MS-MVP的个人站点,包括了他所有的经验文章,还是很值得一看的。 名称:dotNET Tools.org 地址:http://www.dotnettools.org 描述:ccboy,也就是CSDN的小气的神的站点,里面有很多关于.NET等的好东东。 名称:博客堂 地址:http://blog.joycode.com/ 描述:半官方性质的MS-MVP汇集blog,大家可以在这里接触到最新的技术,了解发展趋势,对技术的探索等等,优秀的文章。 名称:DotNetBips.com - Applying .NET 地址:http://www.dotnetbips.com/ 描述:该站点的文章,涉及到了整个.NET,从底层的IL到语言到架构,文章很多,质量还不错。 名称:C# Frequently Asked Questions 地址:http://blogs.msdn.com/csharpfaq/ 描述:The C# team posts answers to common questions 名称:正则表达式 地址:http://www.regexplib.com/ 描述: 正则表达式学习站点 名称:WINDOW formS FAQ 地址:http://www.syncfusion.com/FAQ/Winforms/ 描述:常见的forms faq问题,很多问题都可以在这里找到答案。 名称:ASP.NET 常用类库说明 地址:http://www.123aspx.com/rotor/default.aspx 描述:不用多说,看标题就知道是关于asp.net的名称空间的 名称:ASP.NET System.Web.Mail 地址:http://www.systemwebmail.com/faq/3.8.aspx 描述:邮件发送常见问题解决方法 名称:VB.NET & C# 比较 地址:http://www.harding.edu/USER/fmccown/WWW/vbnet_csharp_comparison.html 描述:VB.NET跟C#语法区别 名称:VB.NET架构师 BLOG 地址:http://panopticoncentral.net/ 描述:不用多说,想了解VB.NET的朋友不可不去的站点(PS,不知道我有没有记错是不是这个地址) 名称:索克论坛 地址:http://www.sorke.com/bbs/Boards.asp

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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