ASP Treeview链接到文件无法正常工作

时间:2014-03-14 12:19:54

标签: c# asp.net treeview

对于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");

链接正确(没有三/(?))但它不会打开文件。

任何想法?

2 个答案:

答案 0 :(得分:0)

试试这个

TreeNode temp = new TreeNode(file.FullName,file.FullName, file.DirectoryName + @"\" + file.FullName);

答案 1 :(得分:0)

发现问题:我试图从网络服务器访问本地文件,Windows不允许这样做。 只要我将路径变量更改为服务器上的某个位置,它就可以工作。

此外,treenode按照核甜的建议工作。