ASP.NET 2.0 - GridView - mp3 download


Vamos mostrar a utilização do controle GridView com um hiperlink para um arquivo mp3 de forma que quando o usuário clicar no link o mesmo seja executado ou de preferência seja baixado para posterior execução. (Para realizar esta operação clique com o botão direito do mouse sobre o link e selecione salvar destino como...)

Você possui um catálogo de músicas mp3 e já criou a sua base de dados armazenando o titulo, gênero, autor e nome da musica. Eu criei para exemplo no artigo um banco de dados Access chamado Musicas e a tabela mp3 com a seguinte estrutura:

Resolveu então disponibilizar uma página ASP.NET para acesso e download das suas músicas na web. Com ASP.NET a tarefa é muito simples...

Vamos usar o Visual Web Developer 2005 Express Edition e criar um New Web Site no menu File com o nome de mp3Download.

Na janela Solution Explorer clique com o botão direito do mouse sobre a pasta App_Data e selecione a opção Add Existing Item, navegue até a pasta onde esta o banco de dados Access criado, no meu caso na pasta c:\dados e selecione o banco de dados para ser incluído nesta pasta da aplicação.

A seguir a partir da ToolBox na guia Data inclua um componente AccessDataSource e clique na opção Configure Data Source selecionando o banco de dados copiado para a pasta App_Data:

Clique no botão Next> e a seguir selecione a tabela mp3 e os campos que vamos exibir na página conforme abaixo:

Prossiga até o final e abra o editor no modo Design para ver o código criado. Atente para a seção AccessDataSource criada com a string de conexão e o comando SQL para selecionar os campos da tabela mp3.

<asp:AccessDataSource ID="AccessDataSource1" runat="server" DataFile="~/App_Data/Musicas.mdb"

SelectCommand="SELECT [Codigo], [Titulo], [Genero], [Autor], [Arquivo] FROM [mp3]">

</asp:AccessDataSource>

Vamos incluir um gridView no formulário default.aspx de forma a exibir os campos da tabela, com opção de ordenação e com um hiperlink para o campo Arquivo:

<asp:GridView ID="GridView1" runat="server" AllowPaging="True" AllowSorting="True" AutoGenerateColumns="False" DataSourceID="AccessDataSource1" Height="200px" Width="400px" Font-Names="Verdana" Font-Size="Small">

<Columns>

<asp:BoundField DataField="Codigo" HeaderText="Codigo" InsertVisible="False" ReadOnly="True" SortExpression="Codigo" />
<
asp:BoundField DataField="Titulo" HeaderText="Titulo" SortExpression="Titulo" />
<
asp:BoundField DataField="Genero" HeaderText="Genero" SortExpression="Genero" />
<
asp:BoundField DataField="Autor" HeaderText="Autor" SortExpression="Autor" />
<
asp:HyperLinkField DataNavigateUrlFields="Arquivo" DataNavigateUrlFormatString="http://www.macoratti.net/{0}" DataTextField="Arquivo" DataTextFormatString="Ouvir" HeaderText="Download" Target="_blank" />

</Columns>
</
asp:GridView>

Obs:  O link definido é apenas um exemplo, e , se você for implementar no seu web site corrija o link: http://www.macoratti.net/{0}

No campo Hyperlink você define os seguintes dados:

Se examinarmos agora nosso projeto estando o editor no modo Design iremos ver o seguinte resultado:

Se executarmos neste momento a página default.aspx usando o servidor ASP.NET iremos obter o seguinte resultado:

Quando o usuário acessar a página poderá ouvir as músicas que você selecionou com um clique de mouse.

Poderíamos ter usado um banco de dados do SQL Server 2005 Express Edition mas eu resolvi simplificar.

Pegue o projeto e o banco de dados aqui:  mp3Net.zip (Abra no VWD com um web site)

Até o próximo artigo ASP.NET.


José Carlos Macoratti