Desenvolvimento - C#

Carregando um Data Grid com dados vindos de um Data Set Tipado carregado de um RSS

Recentemente tive dificuldades em construir um Data Grid carregado por um XML de terceiros, então resolvi escrever um artigo sobre isto. A intenção aqui é disponibilizar as notícias de terceiros vindas por XML ou RSS em um Data Grid devidamente formatado.

por Bruno Peres Orcajo



RSS:

É um formato de distribuição de informações pela Internet. Ao usar RSS, você fica sabendo imediatamente quando uma informação do seu interesse é publicada, sem que você tenha de navegar até o respectivo site do fornecedor.

Recentemente tive dificuldades em construir um Data Grid carregado por um XML de terceiros, então resolvi escrever um artigo sobre isto.

A intenção aqui é disponibilizar as notícias de terceiros vindas por XML ou RSS em um Data Grid devidamente formatado.

Primeiramente precisamos de um arquivo de XML ou RSS, no caso vamos escolher dentre muitos algum que forneça gratuitamente o arquivo.

Escolhemos aqui para o artigo, o seguinte fornecedor: UOL - Últimas Notícias - Mundo Digital. URL do RSS: http://rss.noticias.uol.com.br/mundodigital/ultimas/index.xml

Vamos verificar neste arquivo quantas tabelas vamos precisar no nosso Data Set, vamos identificar no RSS.

Conforme marcado abaixo vemos que existem 3 tabelas e dentro das tabelas suas colunas correspondentes. As tabelas estão demarcadas com o ponto vermelho, que no caso são: chanel, image e item.

A estrutura das Tabelas do Data Set com seus respectivos campos de acordo com o RSS ficará assim:

Chanel

- title
- link
- description
- language
- Category
- Copyright

Image

- title
- url
- link

Item

- title
- link

Bom, vamos por a mão na massa, vamos abrir o Visual Studio e criarmos uma nova Solução em C#, Web.

- File > New > BlankSolution

Agora vamos definir uma aplicação, como sendo C# > ASP.NET Web Application, e vamos dar o nome de "GetRSS".

Vamos criar um novo Data Set e vamos criar as respectivas tabelas:

- Com o botão direito em cima do projeto vamos em Add > Add New Item > Data Set > vamos chamá-lo de "DataSetGetXML".

Agora vamos clicar com o direito na tela do Data Set> Add> New element, e assim vamos criando nossas tabelas:

As tabelas criadas devem ficar assim:

Com o Data Set criado vamos agora para a página Webform1.aspx que o Visual Studio criou. Altere nas propriedades da página a propriedade Page Layout para FlowLayout e vamos adicionar um DataGrid e também um Data Set.

A hora que você colocar o Data Set escolha em Name o Data Set Tipado criado anteriormente.

Coloque o nome do Data Grid de "grdUolMundoDigital".
Coloque o nome do Data Set de "dataSetGetXMLFront".

Nas propriedades do Data Grid sete as propriedades:

- DataSource: dataSetGetXMLFront
- DataMember: item

Vamos agora para o código .cs da página WebForm1.aspx e vamos criar um método de leitura do RSS, que irá carregar nosso Data Set.

#region Events
	private void Page_Load(object sender, System.EventArgs e)
	{
		GetRSSFromUOL();
	}
#endregion

#region Methods
/// <summary>
	/// Carrega o dataset com informações do RSS
/// </summary>
	private void GetRSSFromUOL()
{
dataSetGetXMLFront.ReadXml("http://rss.noticias.uol.com.br/mundodigital/ultimas/index.xml",
XmlReadMode.InferSchema);
grdUolMundoDigital.DataBind();
		}
#endregion

Em design Time defina nas propriedades do grid os campos que você quer que apareça:

- botão direito no grid > Propertie Builder > Columns:

Na coluna link, você pode colocar também um Template Column e personalizar o seu Data Grid, mas os dados já estão sendo carregados no seu Data Grid, se você perder mais um tempinho customizando seu Data Grid, podemos ter um resultado assim:

Atenção, neste artigo usamos no Data Grid apenas a tabela "item" do Data Set lembrando que você ainda pode fazer os outros Data Grid com as outras tabelas.

Espero que este artigo tenha ajudado.

Sugestão, testem com o RSS do Linha de Código (veja link no topo deste artigo) e publique as chamadas dos artigos de sua preferência no seu site.

Bruno Peres Orcajo

Bruno Peres Orcajo - Desenvolvedor .NET C# e Designer da ArchITettura Soluções em Tecnologia.
Concentra esforços em programação e desenvolvimento de sistemas de navegação para layouts Web.