【问题标题】:ASP.Net Treeview Control not displaying documents in iFrame on web serverASP.Net Treeview 控件不在 Web 服务器上的 iFrame 中显示文档
【发布时间】:2011-10-04 13:59:35
【问题描述】:

我正在使用 ASP.Net TreeView 控件,并使用 C# 动态加载 Treeview;

利用 iFrame,在 iFrame 中显示文档 - 基于 TreeNode 选择;

在我的电脑上一切正常,文档从网络中的公共驱动器正确显示;

但是,在将 ASP.Net Web 应用程序发布到 Web 服务器后,遇到了问题;

在 Web 服务器上重新创建包含文档的公用文件夹 - 我的期望是该过程的运行方式与我的 PC 上的运行方式相同;

ASP.Net TreeView 的人口工作正常;但是,如果选择了 TreeView 节点 - 从 TreeView 中选择的文档不会显示;

代码sn-ps如下;提前感谢您的任何见解!最好的问候 - Rob

private void BuildTree()
{
DirectoryInfo rootDir = new DirectoryInfo(Server.MapPath("./Customers/Associated Food Stores/"));
TreeNode rootNode = new TreeNode(rootDir.Name, rootDir.FullName);
            TreeView1.Nodes.Add(rootNode);

            //begin recursively traversing the directory structure
            TraverseTree(rootDir, rootNode);
        }

private void TraverseTree(DirectoryInfo currentDir, TreeNode currentNode)
        {
            //loop through each sub-directory in the current one
            foreach (DirectoryInfo dir in currentDir.GetDirectories())
            {
                //create node and add to the tree view
                TreeNode node = new TreeNode(dir.Name, dir.FullName);
                currentNode.ChildNodes.Add(node);

                foreach (System.IO.FileInfo f in dir.GetFiles("*.*"))
                {
                    TreeNode nodeFile = new TreeNode(f.Name, f.FullName);
                    currentNode.ChildNodes.Add(nodeFile);
                }

                //recursively call same method to go down the next level of the tree
                TraverseTree(dir, node);
            }

            TreeView1.CollapseAll();

            //TreeView1.NodeIndent = 15;

        }

        protected void TreeView1_SelectedNodeChanged(object sender, EventArgs e)
        {
            //this.Label1.Text = "Selected Node changed to: " + this.TreeView1.SelectedNode.Text;
            var src = this.TreeView1.SelectedValue;

            if (this.TreeView1.SelectedValue.EndsWith("pdf"))
            {
                myPDF.Attributes["src"] = src;
                myPDF.Visible = true;

                btnClose.Visible = true;
            }
        }

【问题讨论】:

    标签: asp.net treeview


    【解决方案1】:

    看起来像这样一行:

    var src = this.TreeView1.SelectedValue;
    

    由于您添加值的方式,将始终保存文件的物理路径:

    TreeNode nodeFile = new TreeNode(f.Name, f.FullName);
    

    因此,当您将 src 属性设置为 iframe 时,您应该将 src 映射到托管应用的虚拟目录

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多