对于ASP页面,我创建了一个Treeview,其中列出了RootFolder中的所有子文件夹和PDF。 我希望点击即可打开PDF。
代码
<asp:TreeView ID="QMTreeView" runat="server" Width="650px" NodeIndent="30" ShowLines="False" PopulateNodesFromClient="False">
<LeafNodeStyle ImageUrl="~/Bilder/Icons/Document-icon.png" />
<NodeStyle ImageUrl="~/Bilder/Icons/Folder-icon.png" />
<RootNodeStyle ImageUrl="~/Bilder/Icons/Lamp-icon.png" />
</asp:TreeView>
代码
private void ListDirectory(TreeView treeView, string path)
{
treeView.Nodes.Clear();
var rootDirectoryInfo = new DirectoryInfo(path);
treeView.Nodes.Add(CreateDirectoryNode(rootDirectoryInfo));
}
private static TreeNode CreateDirectoryNode(DirectoryInfo directoryInfo)
{
var directoryNode = new TreeNode(directoryInfo.Name);
foreach (var directory in directoryInfo.GetDirectories())
{
directoryNode.ChildNodes.Add(CreateDirectoryNode(directory));
}
foreach (var file in directoryInfo.GetFiles())
{
//here Comes the problematic line
TreeNode temp = new TreeNode(file.FullName,file.FullName,null,file.FullName,"_blank");
directoryNode.ChildNodes.Add(temp);
}
return directoryNode;
}
如果我点击pdf节点(在状态栏中显示链接)没有任何反应......
如果我更改此行
TreeNode temp = new TreeNode(file.FullName,file.FullName,null,file.FullName,"_blank");
到
TreeNode temp = new TreeNode(file.Name, file.DirectoryName + "/" + file.Name, null, file.DirectoryName + "/" + file.Name, "_blank");
链接正确(没有三/(?))但它不会打开文件。
任何想法?
答案 0 :(得分:0)
试试这个
TreeNode temp = new TreeNode(file.FullName,file.FullName, file.DirectoryName + @"\" + file.FullName);
答案 1 :(得分:0)
发现问题:我试图从网络服务器访问本地文件,Windows不允许这样做。 只要我将路径变量更改为服务器上的某个位置,它就可以工作。
此外,treenode按照核甜的建议工作。