ASP.Net Treeview Control не отображает документы в iFrame на веб-сервере - PullRequest
0 голосов
/ 04 октября 2011

Я работаю с элементом управления ASP.Net TreeView и динамически загружаю Treeview с помощью C #;

При использовании iFrame документ отображается в iFrame на основе выбора TreeNode;

На моем ПК все в порядке, и документ отображается правильно с публичного диска в сети;

Однако после публикации веб-приложения ASP.Net на веб-сервере возникают проблемы;

Повторное создание общей папки с документами на веб-сервере - я ожидал, что процесс будет работать так же, как процесс на моем ПК;

Заполнение ASP.Net TreeView работает нормально; Однако, если выбран узел TreeView - документ, выбранный из TreeView, не отображается;

Фрагменты кода приведены ниже; Заранее спасибо за любую информацию! С наилучшими пожеланиями - Роб

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;
            }
        }

1 Ответ

1 голос
/ 04 октября 2011

Похоже на эту строку:

var src = this.TreeView1.SelectedValue;

Всегда будет содержать физический путь к файлу из-за способа добавления значений:

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

Поэтому, когда вы устанавливаете для свойства src значение iframe, вы должны сопоставить src с виртуальным каталогом, в котором размещено ваше приложение

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...