Neste tutorial veremos como usar o controle TreeView para abrir arquivos a partir de um navegador usando a linguagem C#. |
Já escrevi muitos artigos abordando o componente GridView da ASP .NET, e, embora não ele seja perfeito, ele pode ser usado de diversas formas para exibir dados e criar uma interface com o usuário mais amigável.
Lembrando que a ASP .NET Web Forms é uma tecnologia que já deu o que tinha para dar, restando agora um grande legado que vai existir por muitos anos. Por isso continuo a escrever sobre ASP .NET Web Forms.
Voltando ao controle TreeView, ele é muito versátil, de forma que podemos atribuir uma variedade de fontes de de informações a ela para que possamos exibí-las em uma estrutura hierárquica.
Neste tutorial vamos usar o controle TreeView para exibir o diretório de um web site e permitir que o usuário clique em um arquivo e ele seja aberto no navegador.
Criando o projeto ASP .NET Web Forms e incluindo a página Default.aspx
Abra o VS Community 2017 e clique em New Project;
Selecione a linguagem Visual C# -> WEB -> ASP .NET Web Aplication (.NET Framework), Informe o nome Aspnet_TvArquivos e clique no botão OK;
A seguir selecione o template Empty e marque Web Forms, sem autenticação nem hospedagem na nuvem e clique em OK;
Vamos incluir uma página web no projeto.
No menu Project clique em Add New Item;
Selecione o template Web e a seguir Web Form e informe o nome Default.aspx e clique em Add;
Agora via menu Project clique em New Folder e crie uma pasta chamada Arquivos na raiz do projeto e inclua alguns arquivos textos e de imagens nesta pasta.
Definindo o GridView na página Default.aspx
Abra a página Default.aspx e a partir da ToolBox inclua um controle TreeView na página definindo sua configuração conforme mostrado a seguir:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="Aspnet_TvArquivos.Default" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>TreeView</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:TreeView ID="Tv1" runat="server" OnTreeNodePopulate="Tv1_TreeNodePopulate" AutoGenerateDataBindings="False" ExpandDepth=0 >
<Nodes>
<asp:TreeNode Value="C:" Text="Arquivos" SelectAction="Select" PopulateOnDemand="true"></asp:TreeNode>
</Nodes>
</asp:TreeView>
</div>
</form>
</body>
</html>
|
Neste código definimos um controle TreeView com as seguintes características:
A seguir abra o arquivo Default.aspx.cs e defina o seguinte código no code-behind:
using System;
using System.IO;
using System.Web.UI.WebControls;
namespace Aspnet_TvArquivos
{
public partial class Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (IsPostBack)
{
Tv1.Nodes[0].Value = Server.MapPath("Arquivos");
}
}
protected void Tv1_TreeNodePopulate(object sender, TreeNodeEventArgs e)
{
if (IsCallback == true)
{
if (e.Node.ChildNodes.Count == 0)
{
LoadChildNode(e.Node);
}
}
}
private void LoadChildNode(TreeNode node)
{
DirectoryInfo directory = null;
directory = new DirectoryInfo(node.Value);
foreach (DirectoryInfo subtree in directory.GetDirectories())
{
TreeNode subNode = new TreeNode(subtree.Name);
subNode.Value = subtree.FullName;
try
{
if (subtree.GetDirectories().Length > 0 | subtree.GetFiles().Length > 0)
{
subNode.SelectAction = TreeNodeSelectAction.SelectExpand;
subNode.PopulateOnDemand = true;
subNode.NavigateUrl = "#";
}
}
catch (Exception ex)
{
throw ex;
}
node.ChildNodes.Add(subNode);
}
foreach (FileInfo fi in directory.GetFiles())
{
TreeNode subNode = new TreeNode(fi.Name);
node.ChildNodes.Add(subNode);
subNode.NavigateUrl = "Arquivos/" + fi.Name.ToString();
//subNode.NavigateUrl = Server.MapPath(fi.Name.ToString());
}
}
}
}
|
Neste código definimos o evento Load onde carregamos os nomes dos arquivos na pasta Arquivos do projeto.
Executando o projeto iremos obter o seguinte resultado:
A clicar em um arquivo o mesmo será aberto e exibido no navegador:
Pegue o projeto completo aqui : Aspnet_TvArquivos.zip (sem as referências)
Está alguém entre vós aflito? Ore. Está alguém contente? Cante louvores. Tiago 5:13
Veja os
Destaques e novidades do SUPER DVD Visual Basic (sempre atualizado) : clique
e confira !
Quer migrar para o VB .NET ?
Quer aprender C# ??
Quer aprender os conceitos da Programação Orientada a objetos ? Quer aprender o gerar relatórios com o ReportViewer no VS 2013 ? Quer aprender a criar aplicações Web Dinâmicas usando a ASP .NET MVC 5 ? |
Gostou ? Compartilhe no Facebook Compartilhe no Twitter
Referências:
Super DVD Vídeo Aulas - Vídeo Aula sobre VB .NET, ASP .NET e C#
ASP .NET- Usando GridView (C#) para iniciantes - Macoratti.net
ASP.NET - GridView : Acesso a dados, formatação e ... - Macoratti.net
ASP .NET - Manutenção de dados com GridView e Ajax - Macoratti.net
ASP .NET - Vinculando um TreeView a um XMLDataSource - Macoratti