Código Fonte - O melhor conteúdo para programadores

Criando um menu e lendo título e link de uma tabela

terça-feira, 29 de janeiro de 2008.
autor: Renan Rosa
Olá Pessoal, há muito tempo eu estava procurando um jeito de fazer isso sem ser pelo código em loop e gerando tabelas, queria colocar um DataGrid, GridView ou algo do tipo, e então consegui fazer um usando o Repeater (que também é quase como um Grid, só não tem os títulos se você não colocar).

Abrindo o Visual Studio, add um Repeater (da aba Data) ou entre com o código no design da página

 <asp:Repeater ID="Repeater1" runat="server">
<ItemTemplate>
</ItemTemplate>
</asp:Repeater>


Agora vamos criar uma conexão com o Mysql:

No banco Temos uma tabela com o Nome de MENU, com os campos
código (autonumeraçao) título e link

Clique duas vezes no design da pagina: na aba solution explorer clique com o lado direito e vá em ADD REFERENCE

Aberta a janela de add reference, selecione Mysql.Data e clique em OK.

Lá parte de declação USING add a linha usando MySql.Data.MySqlClient;.

No Page Load add o código

//-------------------------------------------------------------------------------------------
string con = "server=localhost; user=seu usuario; password=seu password; database=seu banco com a tabela menu";

//Criando a Conexao
MySqlConnection conexao = new MySqlConnection(con);
//string para conectar a tabela menu
string sel = "select * from MENU";
//Criando o Adaptador da Tabela menu
MySqlDataAdapter da = new MySqlDataAdapter(sel, conexao);
//Criando o Data set Para ser o DataSource do Repeater
DataSet ds = new DataSet();
//Criando o Comando de Selecionar na Tabela
MySqlCommand cmd = new MySqlCommand(sel, conexao);

conexao.Open();

//Passando os Valores da Tabela para o Dataset
da.Fill(ds);

//Adicionando um DataSource ao Repeater
Repeater1.DataSource = ds;
//Lendo as Informaçoes da Tabela
Repeater1.DataBind();

//-------------------------------------------------------------------------------------------


Voltando ao código de layout da página onde esta o código

 <asp:Repeater ID="Repeater1" runat="server">
<ItemTemplate>
</ItemTemplate>
</asp:Repeater>


Adicione as linhas

<a href="<%# Eval("Link") %>">
<%# Eval("Titulo") %></a><br />


Então ficará assim

<asp:Repeater ID="Repeater1" runat="server">
<ItemTemplate>
<a href="<%# Eval("Link") %>">
<%# Eval("Titulo") %></a><br />
</ItemTemplate>
</asp:Repeater>


Agora é Rodar que você vai ter um Menu onde será pego os links e títulos da tabela.

Quando eu estava criando um gerenciador de conteúdo de site em C#.NET (Gerenciador de Conteúdo = CMS, um exemplo de CMS é o Jonnla criado em PHP)

Caso você esteja usando um banco SqlServer, fica mais fácil, em vez de criar o código Mysql no PAge load da página, adicione um DataSOurce que está na aba Data e configure ele para ler sua tabela menu em seu banco SqlServer.

Em propriedade datasourceID do Repeater selecione o DataSource que você criou
(clique no Repeater e abra a janela do lado direito Propriets e em DataSourceID selecione o Datasource que você criou) e no código da página do Repeater, Add as linhas.

<a href="<%# Eval("Link") %>">
<%# Eval("Titulo") %></a><br />
entre <ItemTemplate> e </ItemTemplate>.


Qualquer dúvida me mande um e-mail que eu envio um código fonte.


Versão impressa gerada em: sábado, 7 de novembro de 2009

© Copyright 2006 - R&W Consulting.