Este é um post disponível para assinantes MVPou para quem possui Créditos DevMedia. Clique aqui para saber mais!
Revista MSDN Magazine Edição 04 - Crie seu Weblog com ASP.NET, JavaScript e OleDB (Parte II)
Artigo Originalmente Publicado na MSDN Magazine Edição 04
Você não gostou da qualidade deste conteúdo?
(opcional) Você gostaria de comentar o que não lhe agradou?
Clique aqui para ler todos os artigos desta edição
Crie seu Weblog com ASP.NET, JavaScript e OleDB (Parte II)
por Marco Bellinaso
Esta é a segunda parte do artigo sobre Weblog, onde você verá como selecionar o blog em um período de datas, trabalhar com janelas de calendário pop-up, inserir comentários e administrar o blog.
Selecionando um Intervalo e Carregando o Blog
Na primeira parte foi abordada a definição de conteúdo de página no arquivo ASPX, mas não foi analisado nenhum código que realmente carregue o conteúdo do blog. Para permitir que o usuário selecionasse um intervalo de um único dia, de uma semana ou de todo o mês, foi utilizado o controle Calendar com a propriedade SelectionMode definida como DayWeekMonth. É boa idéia fornecer caixas de texto para as datas de início e fim desejadas pelo usuário, caso ele queira selecionar as últimas duas semanas ou os últimos 45 dias, por exemplo. A Figura 1 mostra os novos controles adicionados à página com a semana toda selecionada no Calendar.

Figura 1 Intervalos
Se, devido a um postback, a página não for carregada, você deve selecionar um intervalo padrão, por exemplo, a última semana. No entanto, no caso de blogs atualizados com muita freqüência, poderá ser mais apropriado carregar os dados para menos dias e, no caso de blogs raramente atualizados, para todo o mês. Assim como no recurso de notificação de comentários, a melhor opção é deixar a escolha para o administrador do blog, usando uma chave personalizada no arquivo web.config que permita especificar o número de dias para o intervalo padrão. O código a seguir mostra como a chave personalizada é lida a partir do arquivo, feito o Parse para Integer e usada para calcular um intervalo para os últimos n dias, bem como a maneira como o intervalo é destacado no calendário:
Private Sub Page_Load(...) Handles MyBase.Load
If Not IsPostBack Then
Dim defPeriod As Integer = Integer.Parse( _
ConfigurationSettings.AppSettings("Blog_DefaultPeriod"))
Dim fromDate = Date.Today.Subtract(New TimeSpan(defPeriod -_
1,0,0,0))
BlogCalendar.SelectedDates.SelectRange(fromDate, Date.Today)
BindData()
End If
End Sub
A data de início é calculada subtraindo-se n-1 dias da data de hoje. A chamada para BindData carrega os dados para o intervalo selecionado e os vincula ao Repeater e a seus controles internos. Esse método chama o método GetData da classe de negócio do Blog desenvolvido anteriormente (parte I) e passa as datas de início e fim da data selecionada no calendário, que são lidas a partir da coleção SelectedDates:
Private Sub BindData()
Dim ds As DataSet = m_BlogManager.GetData( _
BlogCalendar.SelectedDates(0), _
BlogCalendar.SelectedDates(_
BlogCalendar.SelectedDates.Count - 1))
Blog.DataSource = ds.Tables("Messages").DefaultView
"
Este é um post disponível para assinantes MVPou para quem possui Créditos DevMedia. Clique aqui para saber mais!
Marco Bellinaso
Marco Bellinaso é editor técnico do VB-2-The-Max (http://www.vb2themax.com) e trabalha como desenvolvedor de software e instrutor para Code Architects Srl, em uma companhia italiana especializada em .NET Framework. Ele é co-autor do livro ASP.NET Website Programming (C# and Visual Basic .NET edition...



