Click here to Skip to main content

How to bind RSS feeds to a GridView

Sample Image - GridView_RSS.jpg

Introduction

RSS-Feeds are great to stay informed about recent changes in your favorite websites. But it is quiet hard to read the XML documents for humans. So, I will show how you can bind RSS feeds (for example, the newest articles on CodeProject) to a GridView.

The GridView

First, create a new aspx file and drop a GridView to the form. Next, turn off "Auto generate fields" from the GridView properties. Last, create a Template field for the hyperlink to the article and a bound field for the description. Here is the code:

<body>
 <form id="form1" runat="server">
   <asp:GridView ID="GridView1" runat="server" 
           AutoGenerateColumns="False">
     <Columns>
       <asp:TemplateField HeaderText="Title">
         <ItemTemplate>
          <a href=<%# Eval("link") %> 
            target=_blank><%# Eval("title") %></a>
         </ItemTemplate>
       </asp:TemplateField>
       <asp:BoundField DataField="description" 
           HeaderText="Description" />
     </Columns>
   </asp:GridView>
 </form>
</body>

Now, you can copy the code for the GridView as many times you need it. Maybe a GridView for aspalliance as well.

The code behind

Import the namespace System.Data and create the Page_Load event. Then, call the function BindGrid for every RSS-feed you will display on your web page. The function BindGrid needs three parameters:

  • the string pointing to the URL of the news feed
  • the GridView object that will display the news
  • and an integer indicating which part of the feed will be bound
Imports System.Data
Partial Class _Default
    Inherits System.Web.UI.Page
    Protected Sub Page_Load(ByVal sender As Object, _
              ByVal e As System.EventArgs) Handles Me.Load
        BindGrid("http://www.codeproject.com/" & _ 
                 "webservices/articlerss.aspx", _
                 GridView1, 3)
        BindGrid("http://aspalliance.com/rss.aspx", _
                 GridView2, 2)
    End Sub
    Sub BindGrid(ByVal strRss As String, ByVal oGrid _
                 As GridView, ByVal iTable As Integer)
        Dim oDs As New DataSet
        oDs.ReadXml(strRss)
        oGrid.DataSource = oDs.Tables(iTable)
        oGrid.DataBind()
    End Sub
End Class

BindGrid creates a new DataSet object and reads the feed using ReadXml. Then the XML document is bound to the GridView. You can also find an online example here: How to bind RSS feeds to a GridView.


Web03 | 2.8.160204.4 | Advertise | Privacy
Copyright © CodeProject, 1999-2016
All Rights Reserved. Terms of Service