ASP.NET 2.0 - Criando um Blog IV
Como anda o nosso Blog ? Vai bem , obrigado. Se você chegou agora veja os artigos anteriores já publicados:
Nesse artigo vou apresentar a criação da página que exibe uma mensagem selecionada e os comentários do Blog. Ao trabalho...
Criando a página de comentários do Blog
A página de comentários do Blog deverá exibir uma mensagem selecionada pelo usuário , apresentar os comentários (respostas) já efetuados e abrir um espaço para que o usuário digite o texto do seu comentário. Um esquema de leiaute para esta página pode ser visto a seguir:
Área 1
SELECT * FROM [Mensagens] WHERE ([MensagemID] = @MensagemID)
Área 2
SELECT * FROM [Comentarios] WHERE ([mensagemID] = @mensagemID)
Área 3
|
Vamos criar então a página ExibeMensagens.aspx.
1- Criando a área de exibição da mensagem
Abrindo o projeto que eu chamei de BlogMac clique com o botão direito do mouse sobre o nome do projeto e clique na opção Add New Item.
Na janela Templates selecione Web Form e informe o nome ExibeMensagens.aspx marcando as opções para selecionar o code-behind e a master page;
1- Selecione a página e no modo Design inclua um componente DataList a partir da ToolBox na página;
2- Em DataLists Tasks , opção Choose DataSource, selecione a opção <new data source>
3- Na janela do assistente Choose your data connection selecione a connection já usada para o blog: BlogConnectionString e clique em Next>
4- Após selecionar a opção - Specify a custom SQL Statement or Stored Procedure , na janela Configure de Select Statement , clique em Next e na aba SELECT defina a instrução SQL conforme abaixo: (SELECT * FROM [Mensagens] WHERE ([MensagemID] = @MensagemID))
Clique no botão Next> e defina os parâmetros usados pela instrução SQL conforme a figura abaixo; Clique em Next> e a seguir em Finish;
Com isso temos um DataList e um SqlDataSource que irá exibir a mensagem selecionada pelo usuário através do código da mensagem : MensagemID.
Vamos configurar o Datalist para exibir a mensagem selecionada. Iremos exibir a data , o título e a mensagem, para isso selecione o DataList e em DataList Tasks clique na opção Edit Templates , selecione o ItemTemplate deixe somente os Labels para a data o título e a mensagem;
Selecione a Label Data e clique em Edit DataBindings, será exibida a janela Data Bindings , clique em Text e informe o valor: ctype(Eval("data"),dateTime).ToLongDateString() para exibir a data no formato apropriado.
Repita o processo para as Labels Titulo e Mensagem e defina a seguinte configuração para cada uma delas:
Ao encerrar clique em End Template Editing.
2- Criando a área de exibição dos comentários
Vamos repetir todo o processo para exibir os comentários postados.
1- Selecione a página e no modo Design inclua um componente DataList a partir da ToolBox na página;
2- Em DataLists Tasks , opção Choose DataSource, selecione a opção <new data source>
3- Na janela do assistente Choose your data connection selecione a connection já usada para o blog: BlogConnectionString e clique em Next>
4- Após selecionar a opção - Specify a custom SQL Statement or Stored Procedure , na janela Configure de Select Statement , clique em Next e na aba SELECT defina a instrução SQL conforme abaixo: (SELECT * FROM [Comentarios] WHERE ([mensagemID] = @mensagemID))
Clique no botão Next> e defina os parâmetros usados pela instrução SQL conforme a figura abaixo; Clique em Next> e a seguir em Finish;
Com isso temos um DataList e um SqlDataSource que irá exibir os comentários para a mensagem selecionada pelo usuário através do código da mensagem : MensagemID.
Vamos configurar o Datalist para exibir os comentários existentes. Iremos exibir a data , o título, a mensagem, o autor e a data da postagem , para isso selecione o DataList e em DataList Tasks clique na opção Edit Templates , selecione o ItemTemplate deixe somente os Labels os campos definidos acima;
O leiaute do ItemTemlate deverá ser o seguinte:
A definição de cada um dos campos vinculados deverá ser a seguinte:
Ao encerrar clique em End Template Editing.
3- Criando a área de informação do texto do comentário
Agora vamos criar a área para o usuário informar o texto do seu comentário , além de se identificar.
Inclua alguns controles TextBox e Buton conforme o leiaute abaixo a esquerda;
A seguir , a partir da ToolBox , inclua um componente SqlDataSource , na página e usando a conexão já definida para o Blog, defina as instruções SQL para incluir , alterar e excluir dados da tabela Comentarios conforme as figuras abaixo.(Eu só não estou mostrando a instrução SELECT * FROM Comentários da aba SELECT:)
Inclui dados na tabela Comentarios | |
Atualiza os dados da tabela Comentarios | |
Exclui dados da tabela Comentarios |
O toque final é incluir o seguinte código no code-behind, o arquivo ExibeMensagens.aspx.vb:
Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.ClickSqlDataSource3.Insert() DataList2.DataBind() End SubProtected Sub DataList1_ItemDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DataListItemEventArgs) Handles DataList1.ItemDataBound TextBox1.Text = "Re:" & CType(e.Item.FindControl("titulo"), Label).Text End Sub
|
O código acima é muito simples:
1 - O código do evento Click do botão - Button1 - refere-se ao botão Enviar que irá salvar o texto na tabela Comentarios;
2 - O código do evento ItemDataBound do DataList que obtém o valor do autor e exibe na caixa de texto apropriada;
Nota: O evento ItemDataBound é disparado quando uma nova linha é incluída no DataList durante o DataBind(). Podemos usar este evento para obter os valores que estão sendo incluídos e efetuar validações.
Vamos executar a página e verificar o resultado obtido na página ExibeMensagens.aspx. Veja abaixo:
Desta forma finalizamos as páginas de exibição de mensagens e comentários com área para o usuário informar o texto de seu comentário e enviar ao Blog.
A próxima etapa é criar a página para exibição dos arquivos e o RSS do Blog.
Veja a continuação do artigo em : Criando um Blog V
A vídeo Aula deste artigo esta no Super DVD Vídeo Aulas
Até o próximo artigo ASP .NET
José Carlos Macoratti