<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Xml" %>
<script language="VB" runat="server">
Sub Page_Load(sender as Object, e as EventArgs)
'Cache the ASPMB posts for 20 minutes
If Cache("ASPMBPosts") Is Nothing then
'Item not in cache, get it manually
Dim dt as DataTable = GetRSSFeed("http://www.aspmessageboard.com/scripts/rss.asp")
Cache.Insert("ASPMBPosts", dt, Nothing, DateTime.Now.AddMinutes(20), TimeSpan.Zero)
lblCacheStatus.Text = "The data was NOT found in the cache...<p>"
Else
lblCacheStatus.Text = "The data was retrieved from the cache...<p>"
End If
recentPosts.DataSource = Cache("ASPMBPosts")
recentPosts.DataBind()
End Sub
Function GetRSSFeed(strURL as String) as DataTable
'Get the XML data
Dim reader as XmlTextReader = New XmlTextReader(strURL)
'return a new DataSet
Dim ds as DataSet = New DataSet()
ds.ReadXml(reader)
Return ds.Tables(2)
End Function
Function PrintTimeOnly(s as DateTime) as String
Return s.ToString("t") & " EST"
End Function
</script>
<asp:label id="lblCacheStatus" runat="server" />
<asp:DataGrid runat="server" id="recentPosts" AutoGenerateColumns="False"
Font-Name="Arial" Font-Size="10pt"
HeaderStyle-Font-Bold="True"
HeaderStyle-HorizontalAlign="Center"
HeaderStyle-BackColor="Navy" HeaderStyle-ForeColor="White"
HeaderStyle-Font-Size="15pt"
AlternatingItemStyle-BackColor="#eeeeee">
<Columns>
<asp:TemplateColumn HeaderText="20 Most Recent ASPMessageboard.com Posts">
<ItemTemplate>
<a href="<%# DataBinder.Eval(Container.DataItem, "link")%>">
<%# DataBinder.Eval(Container.DataItem, "title") %>
</a> (<i><%# PrintTimeOnly(DataBinder.Eval(Container.DataItem, "datePosted")) %></i>)
</ItemTemplate>
</asp:TemplateColumn>
</Columns>
</asp:DataGrid>