代码语言
.
CSharp
.
JS
Java
Asp.Net
C
MSSQL
PHP
Css
PLSQL
Python
Shell
EBS
ASP
Perl
ObjC
VB.Net
VBS
MYSQL
GO
Delphi
AS
DB2
Domino
Rails
ActionScript
Scala
代码分类
文件
系统
字符串
数据库
网络相关
图形/GUI
多媒体
算法
游戏
Jquery
Extjs
Android
HTML5
菜单
网页交互
WinForm
控件
企业应用
安全与加密
脚本/批处理
开放平台
其它
【
Js
】
遍历虚拟网站下所有目录
作者:
stringwb
/ 发布于
2016/4/21
/
1315
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title>选择本地路径</title> <base target="_self" /> <script src="http://www.cnblogs.com/js/jquery-1.4.2.js" type="text/javascript"></script> <script language="javascript" type="text/javascript"> var _text; // 返回的名 var _value; // 返回的值 function NoTrans(obj){ return obj.replace("\\","\\\\"); } // div 出现在右侧,方便用户选择 $(document).ready(function(){ $("a").click(function(){ var obj = $(this); var offset = obj.offset(); var right = offset.left + obj.width(); var down = offset.top + obj.height(); $("#dSubmit").css({'top':down,'left':right + 50}); }) }); function SetTextValue(text, value){ _text = text; _value = value; } function SetValueAndReturn(){ } </script> </head> <body> <form id="form1" runat="server"> <div> <div> <asp:TreeView ID="tvLocalDirFile" runat="server" ImageSet="XPFileExplorer" NodeIndent="15" ExpandDepth="1"> <ParentNodeStyle Font-Bold="False" /> <HoverNodeStyle Font-Underline="True" ForeColor="#6666AA" /> <SelectedNodeStyle BackColor="#B5B5B5" Font-Underline="False" HorizontalPadding="0px" VerticalPadding="0px" /> <NodeStyle Font-Names="Tahoma" Font-Size="8pt" ForeColor="Black" HorizontalPadding="2px" NodeSpacing="0px" VerticalPadding="2px" /> </asp:TreeView> </div> <div id="dSubmit" align="center" style="position:absolute; border: solid 1 #462375"> <input type="button" id="btnOK" value="确定" onclick="returnValue();" /> <input type="button" id="btnCancel" value="取消" onclick="window.close();" /> </div> <script language="javascript" type="text/javascript"> // 返回的方法 function returnValue() { var opener = null; try{ opener = window.dialogArguments; } catch(e) { } if(opener == null) { opener = window.opener; ; } try { opener.document.getElementById("<%= rtnIdObj%>").<%= rtnIdPro%>= _text; } catch (e){ } try { opener.document.getElementById("<%= rtnNameObj%>").<%=rtnNamePro %> = _value; } catch(e){ } try { <%=string.IsNullOrEmpty(Request.QueryString["callbackfn"]) ? "" : "opener." + Request.QueryString["callbackfn"] + "();"%> } catch(e){} window.close(); } </script> </div> </form> </body> </html> 复制代码 后台代码 protected string rtnIdObj, rtnIdPro; protected string rtnNameObj, rtnNamePro; protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { TreeNode node = new TreeNode(this.RepalcePrevDir(Request.ApplicationPath), Request.ApplicationPath); node.SelectAction = TreeNodeSelectAction.Expand; tvLocalDirFile.Nodes.Add(node); // 这里要移除根路径不是 / 的那些字符 ListAllPath(Request.ApplicationPath.Remove(1), tvLocalDirFile.Nodes[0]); // 初始化传入的值 SplitIdAndValue(); } } /// <summary> /// 分隔传到页面的值的 id 和 value 值,方便传回调用页面 /// </summary> private void SplitIdAndValue() { rtnNamePro = rtnIdPro = "value"; // 都只能是 value 属性 string[] rtnId; string[] rtnName; if (!string.IsNullOrEmpty(Request["rtnText"])) { rtnId = Request["rtnText"].ToString().Split('.'); // 接收返回值的对象ID和属性 if (rtnId.Length == 2) // 将objectname.value 格式的传入参数,分解为对象名和属性两个字符串 { rtnIdObj = rtnId[0]; rtnIdPro = rtnId[1]; } } if (!string.IsNullOrEmpty(Request["rtnValue"])) { rtnName = Request["rtnValue"].ToString().Split('.'); if (rtnName.Length == 2) { rtnNameObj = rtnName[0]; rtnNamePro = rtnName[1]; } } } /// <summary> /// 转换成相对路径 /// </summary> /// <param name="imagesurl1">虚拟目录</param> /// <returns></returns> private string urlconvertor(string imagesurl1) { string tmpRootDir = Server.MapPath(System.Web.HttpContext.Current.Request.ApplicationPath.ToString());// 获取程序根目录 string imagesurl2 = imagesurl1.Replace(tmpRootDir, ""); // 转换成相对路径 imagesurl2 = imagesurl2.Replace(@"\", @"/"); //imagesurl2 = imagesurl2.Replace(@"Aspx_Uc/", @""); return imagesurl2; } // 转换成绝对路径 private string urlconvertorlocal(string imagesurl1) { string tmpRootDir = Server.MapPath(System.Web.HttpContext.Current.Request.ApplicationPath.ToString());// 获取程序根目录 string imagesurl2 = tmpRootDir + imagesurl1.Replace(@"/", @"\"); // 转换成绝对路径 return imagesurl2; } /// <summary> /// 列出网站根目录 /// </summary> /// <param name="dirPath"></param> /// <param name="passNode"></param> private void ListAllPath(string dirPath, TreeNode passNode) { string[] dirs; string[] files; //Response.Write(VirtualPathUtility.GetDirectory(Request.ApplicationPath)); dirs = Directory.GetDirectories(this.urlconvertorlocal(dirPath)); files = Directory.GetFiles(this.urlconvertorlocal(dirPath)); for (int i = 0; i < dirs.Length; i++) { TreeNode node = new TreeNode(this.RepalcePrevDir(this.urlconvertor(dirs[i])), dirs[i]); //node.NavigateUrl = "#"; node.SelectAction = TreeNodeSelectAction.Expand; //node.SelectAction= TreeNodeSelectAction. passNode.ChildNodes.Add(node); // 已经添加了节点 ListAllPath(this.urlconvertor(dirs[i]), passNode.ChildNodes[passNode.ChildNodes.IndexOf(node)]); // 索引到那个节点 } for (int i = 0; i < files.Length; i++) { TreeNode tNode = new TreeNode(this.RepalcePrevDir(this.urlconvertor(files[i])), files[i]); tNode.NavigateUrl = "javascript:SetTextValue('" + this.urlconvertor(files[i]) + "', '" + files[i].Replace("\\", "\\\\") + "')"; passNode.ChildNodes.Add(tNode); } } /// <summary> /// 去除掉路径前的所有父路径 /// </summary> /// <param name="dir"></param> /// <returns></returns> private string RepalcePrevDir(string dir) { return dir.Substring(dir.LastIndexOf("/") + 1); }
试试其它关键字
同语言下
.
Jquery搜索框获取回车事件
.
H5页面添加倒计时,然后自动跳转
.
通过user-agent判断h5页面是在哪个手机App(QQ、微信
.
nginx 禁止未绑定的域名访问
.
JavaScript 获取按键,并屏蔽系统 Window 事件
.
H5之只允许微信浏览器打开,禁止从外部浏览器访问
.
微信打开网址添加在浏览器中打开提示的办法
.
实现JS复制、粘贴,Chrome/Firefox下可用
.
video视频播放,play()、pause()、duration时长、onen
.
HTML5实现MP3上传前的预览和播放时长的获取
可能有用的
.
Jquery搜索框获取回车事件
.
H5页面添加倒计时,然后自动跳转
.
通过user-agent判断h5页面是在哪个手机App(QQ、微信
.
nginx 禁止未绑定的域名访问
.
JavaScript 获取按键,并屏蔽系统 Window 事件
.
H5之只允许微信浏览器打开,禁止从外部浏览器访问
.
微信打开网址添加在浏览器中打开提示的办法
.
实现JS复制、粘贴,Chrome/Firefox下可用
.
video视频播放,play()、pause()、duration时长、onen
.
HTML5实现MP3上传前的预览和播放时长的获取
stringwb
贡献的其它代码
(
7
)
.
安卓手机利用html5 ,video+canvas从视频流里面截图拍
.
根据当前日期计算星期几
.
使用Linq语句查询DataTable的数据操作
.
排序二叉树
.
指定数据库创建表
.
日期
.
遍历虚拟网站下所有目录
Copyright © 2004 - 2024 dezai.cn. All Rights Reserved
站长博客
粤ICP备13059550号-3