需要帮助使用 ColdFusion 和 jsTree 复制目录结构
Posted
技术标签:
【中文标题】需要帮助使用 ColdFusion 和 jsTree 复制目录结构【英文标题】:Need help replicating directory structure with ColdFusion and jsTree 【发布时间】:2011-02-13 10:54:57 【问题描述】:我正在使用这个名为 jsTree www.jstree.com 的新 jQuery 插件并使用 html 数据源。 我还在使用带有 cfdirectory 的 ColdFusion 7 并过滤掉文件,所以只是 dirs。 我需要重新创建图像中的目录结构,以及我实际上给它的任何目录结构。我在逻辑上玩得很开心。 variables.imageDirectoriesLen = 8 在这种情况下,因为我是从实际文件路径的中间输出,而不是从开始。
感谢您的帮助。 德里克
这是我目前所拥有的
<cfoutput query="clientImageDirsFilter">
<cfset nextLen = 0 />
<cfset nextDir = "" />
<cfset nextRowCnt = currentRow+1 />
<cfset nextDir = clientImageDirsFilter.directory[nextRowCnt] & "\" & clientImageDirsFilter.name[nextRowCnt] />
<cfset nextLen = listLen(nextDir, "\") />
<cfset currLen = listLen(clientImageDirsFilter.directory & "\" & clientImageDirsFilter.name,"\") />
<cfif currLen eq nextLen>
<li rel="folder" id="node_#randRange(1,99999)#"><a href="##"><ins> </ins>#clientImageDirsFilter.name#</a></li>
<cfelseif nextLen lt currLen>
<cfif nextLen eq 0>
#repeatString("</li></ul>",(currLen-nextLen-variables.imageDirectoriesLen))#
</cfif>
<cfelse>
<ul>
<li rel="folder" id="node_#randRange(1,99999)#"><a href="##"><ins> </ins>#clientImageDirsFilter.name#</a>
<ul>
</cfif>
【问题讨论】:
我使用可能稍微复杂一点的方法(dir query > struct > JSON),但最后我发送的是 JSON 而不是 HTML。如果这适合你,我可以发布代码。 【参考方案1】:我使用recursive function Camden wrote 的略微修改版本。它应该做你想做的。
<cfset initialDir = "C:\myrootdir">
<cfdirectory directory="#initialDir#" recurse="yes" name="files" sort="type asc">
<cfquery name="test" dbtype="query">
select * from files where name <> 'Thumbs.db'
</cfquery>
<div id="basic_html">
<cfset display(test,initialDir)>
</div>
<cffunction name="display" returnType="void" output="true">
<cfargument name="files" type="query" required="true">
<cfargument name="parent" type="string" required="true">
<cfset var justMyKids = "">
<cfquery name="justMyKids" dbtype="query">
select *
from arguments.files
where directory = <cfqueryparam cfsqltype="cf_sql_varchar" value="#arguments.parent#">
</cfquery>
<ul>
<cfoutput query="justMyKids">
<cfif type is "Dir">
<ul><li><a href="##"><ins> </ins>#Replace(name, "_", " ", "All")#</a> #display(arguments.files, directory & "\" & name)#</li></ul>
<cfelse>
<cfset fileURL = Replace(Replace(directory, initialDir, "", "All"), "\", "", "All") & "/" & name>
<li class="close"><a href="#fileURL#"><img src="http://localhost/globalincludes/interface/includes/js/jquery_plugins/jsTree/file.png" border="0"> #Replace(name, "_", " ", "All")#</a></li>
</cfif>
</li>
</cfoutput>
</ul>
</cffunction>
【讨论】:
太棒了!谢谢。不要以为我是在搜索时发现的。它确实有效。我想我想太多了。以上是关于需要帮助使用 ColdFusion 和 jsTree 复制目录结构的主要内容,如果未能解决你的问题,请参考以下文章