经过一个XSL的模板,整理出一个树形的XML
{$Wap} | 网站首页 | 电脑资料库 | wap资源库 | 建站资源库 | 茂名合租网 | 下载中心 | 美图资源库 | 茂名资源网商城 | 
广告载入中...
〒 您现在的位置: 茂名资源网 >> 建站资源库 >> 网站技巧资源 >> 收藏代码 >> 建站资源库正文
打造DIV+CSS 实用的无限级分类树 【字体:
作者:未知    建站资源库来源:本站原创    点击数:    更新时间:2007-10-12
广告载入中...

按此在新窗口浏览图片

服务端输出很简洁 response.Write "<table><tr>" response.Write "<td valign='top'>" & xslTransform("tree.xml","xmlFile","tree.xsl","class","tree") & "</td>" response.Write "<td valign='top'>" & xslTransform("tree.xml","xmlFile","tree.xsl","class","tree1") & "</td>" response.Write "<td valign='top'>" & xslTransform("tree.xml","xmlFile","tree.xsl","class","tree2") & "</td>" response.Write "<td valign='top'>" & xslTransform("tree.xml","xmlFile","tree2.xsl","class","tree3") & "</td>" response.Write "</tr></table>"
这里说下,为什么要写这个分类树. 看到很多时候大家都在问关于无限级的分类问题,也看过很多的实现无限级分类的代码,大家都看过动网的无限级分类的数据表了吧,结构复杂,要更新移动分类,排序时更复杂了。其实这个也是为了效率娣。但是能不能用ID,parentId,catalogName,sortId这样的简单的数据库结构来实现一棵可排序的分类树呢?很多的代码对于这种结构生成树时用到的代码用的是递归,一次次的递归rs.open效率很有问题,还在在当中夹着""类似的代码让人看得头晕。所有我的想法就是只读取一次的数据库中用记录集生成一个XML,再经过整理结构如下: <data> <row id="1" parentId="0" catalogName="分类1" sortId="1.1"/><!--sortId用小数就可以自由的排序啦--> <row id="2" parentId="0" catalogName="分类2" sortId="1"/> <row id="3" parentId="1" catalogName="分类1_1" sortId="1"/> <row id="4" parentId="1" catalogName="分类1_2" sortId="2"/> <row id="5" parentId="3" catalogName="分类1_1_1" sortId="1"/> <row id="6" parentId="3" catalogName="分类1_1_2" sortId="2"/> </data> 经过一个XSL的模板,整理出一个树形的XML <root> <catalog id="2" parentId="0" catalogName="分类2"/> <catalog id="1" catalogName="分类1"/> <catalog id="3" catalogName="分类1_1"> <catalog id="5" catalogName="分类1_1_1"/> <catalog id="6" catalogName="分类1_1_2"/> </catalog> <catalog id="4" catalogName="分类1_2"/> </catalog> </root>

这个XML可能存入缓存,以后不改变分类就不要再去读数据库啦,这个树形结构能大大方便我们写其它功能的代码

现在我们想实现一个导航条也就是分类1 > 分类1_1 > 分类1_1_2这类型的
比如这们有一条 [分类1_1_2] 的信息,要实现导航条通过ancestor-or-self::catalog一个xpath就搞定了。

要实现取下级的所有分类用descendant::catalog如果当前分类也算在内用descendant-or-self::catalog,就好了,简单吧:)

=============================================================================================

下面说说我从论坛上下的JTREE吧,本来有想利用这个的,不过看看代码,灵活性不太好:
这个是他生成XML用的
PUBLIC SUB saveVogueToXMLFile(pFileName)
while not rst.eof
set elemNode =xmlDom.createElement("item")
set attCaption =xmlDom.createAttribute("caption")
attCaption.text =rst("title")
..........

这个如果我要在树中加点内容,比如当前分类有个隐藏标识,当前分类再加个说明,就要改这里的代码,用记录集生成的XML就不要改任何东西

PUBLIC FUNCTION deleteType
dim sql,rst,returnArray(1),isOk
isOk=true
sql="select * from mmst060 where parentTypeID=" & typeID
set rst=conn.execute(sql)
if not rst.eof then
isOk=false
returnArray(0)=false
returnArray(1)="当前类别下存在分类,请先删除分类!"
..................
要是下面有20多个子分类,要一个个删??为什么不连同所有下级分类一起删??

我想不要把所有一级分类当成根节点,要不做个分类选择,根节点要写个什么网站分类,怪怪的,一看JS代码,不花点时间,是改不好的,要是JS水平不好,就没戏了。

下面还有个要求,加入连动的CHECKBOX,所有有下级分类的节点,加个菜单。再或者,把所有分类树后加个此分类的信息数量,再或者,把所有分类写成淘宝的主页的分类形式,但是超过二级分类的,要在二级分类下加个小小的下拉菜单,再或者我还要根据用户权限,禁用一部分分类的CHECKBOX,看看JTREE,我想还是自立更生吧。

===================================================================================

下面就说说我实现的功能吧:
因为很多树的前面修饰的小图片都是一张张小图,加载时会出现图片是个X的情况,有时还一大排,太不好了,如果我想改下外观,又要改一张张小图,又要改生成树的代码太累了,所以我把树的所有风格做的一张图里,用CSS的控制背景,就OK了,要改外观,改下那张背景图,改下CSS,就行了,可以做个换肤的效果了:)

加了个CHECKBOX的连动选择功能。

可以把所有的一级分类当成根目录显示。

因为在服务端生成,所有不存在XSLT的兼容问题。

因为实际应用中,我们可能希望XML中有些信息不要给客户看,如果要在客户端生成,还要专门处理下XML。在服务端处理,在xslt加个xsl:param 可以很灵活的实现各种需求。

生成的树的windows98的风格和window2003的风格(也就是有没有中间的那些线),用的是不同的XSLT(相同的也行,不过有点浪费资源,毕竟98的风格要比2003写多点XSLT),window2003的风格的XSLT很简洁。



准备要实现的:

用COOKIES保持树的状态,支持页面的同时存在分类树,支持各个不同页面的分类树的状态保持。[用一个公用的JS实现]

展开全部,折叠全部

预先展开某些节点

加入节点的下拉菜单

AJAX加载

在树中的进行各种控制,比如隐藏分类不让操作,推荐分类加红色字,再换个修饰小图标。一个分类的前面修饰小图标可自定。
树的展开有动画效果(这个好像是好看,不实用)。

利用树的XML结构得到无限极的SELECT的连动菜单,当然也是XSLT生成的:)

收藏此页到:[天极网摘]  [和讯网摘]  [新浪VIVI]  [365key]  [博采中心]  [网摘中国]  [5Seek]  [狐摘 ]  [365Fav]  [热门 ]  [人人网摘]  [我摘]  [YouNote]
广告载入中...

注明
☉本站所有软件和资料大多来自互联网收集整理,仅供学习和研究使用。如有侵犯您版权的,请来信指出,本站将立即改正。
邮址:diyb208%21cn.com请将%换成@
☉下载的压缩包如需要密码的,密码统一为:www.0668idc.com
☉茂名资源网不承担用户因使用这些下载资源和技术教程对自己和他人造成任何形式的损失或伤害。
☉资源下载请使用[FlashGet]下载,否则可能出现下载不了的情况;解压缩请使用[Winrar]。

  • 上一个建站资源库:

  • 下一个建站资源库: 没有了
  • 发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口

    相关建站资源库 推荐文章 热门文章

    没有相关建站资源库

  • 没有推荐建站资源库
  •  

     打造DIV+CSS 实用的无限级分类树
     高手整理IIS的问题精华
     FTP显身手 轻松玩转FTP技巧全面介…
     Google Analytics(Google分析)…

     

    网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    站长:落叶有声
    管理员通信方式:信箱地址:diyb208@21cn.com QQ:84805309