homeshopper
asked on
ASP.net C# Bind a Yahoo RSS Feed to a Gridview
Hi,
I am trying to get code to read from RSS Feed to a GridView in ASP.Net C#
I have the c# code in App_Code folder CodeCS and VB code in App_Code folder CodeVB
and referenced the folders in Web.config as follows:
<codeSubDirectories><add directoryName="VBCode"/><a dd directoryName="CSCode"/>
I am getting the following errors:
Error 20 An object reference is required for the non-static field, method, or property
'System.Web.UI.WebControls .BaseDataB oundContro l.DataSour ce.get'
C:\Projects\Web\AssetAlloc ation\App_ Code\CodeC S\FeedRss. aspx.cs
Line17 Column 9 GridView.DataSource = GetDataSet().Tables[3];
Error 21 An object reference is required for the non-static field, method, or property
'System.Web.UI.Control.Dat aBind()' C:\Projects\Web\AssetAlloc ation\App_ Code\CodeC S\FeedRss. aspx.cs
Line18 Column 9 GridView.DataBind();
Error 22 An object reference is required for the non-static field, method, or property
'System.Web.UI.WebControls .DataBound Control.Da taMember.g et'
C:\Projects\Web\AssetAlloc ation\App_ Code\CodeC S\FeedRss. aspx.cs 25
Line 25 Column 9 GridView.DataMember = "item";
Error 23 An object reference is required for the non-static field, method, or property
'System.Web.UI.WebControls .BaseDataB oundContro l.DataSour ce.get'
C:\Projects\Web\AssetAlloc ation\App_ Code\CodeC S\FeedRss. aspx.cs
Line 26 Column 9 GridView.DataSource = ds;
Error 21 'System.Web.UI.Page' does not contain a definition for 'DataItem'
and no extension method 'DataItem' accepting a first argument of type 'System.Web.UI.Page'
could be found (are you missing a using directive or an assembly reference?)
c:\Projects\Web\AssetAlloc ation\Feed RssCS.aspx
Line 26 Column 37 DataItem
I am trying to get code to read from RSS Feed to a GridView in ASP.Net C#
I have the c# code in App_Code folder CodeCS and VB code in App_Code folder CodeVB
and referenced the folders in Web.config as follows:
<codeSubDirectories><add directoryName="VBCode"/><a
I am getting the following errors:
Error 20 An object reference is required for the non-static field, method, or property
'System.Web.UI.WebControls
C:\Projects\Web\AssetAlloc
Line17 Column 9 GridView.DataSource = GetDataSet().Tables[3];
Error 21 An object reference is required for the non-static field, method, or property
'System.Web.UI.Control.Dat
Line18 Column 9 GridView.DataBind();
Error 22 An object reference is required for the non-static field, method, or property
'System.Web.UI.WebControls
C:\Projects\Web\AssetAlloc
Line 25 Column 9 GridView.DataMember = "item";
Error 23 An object reference is required for the non-static field, method, or property
'System.Web.UI.WebControls
C:\Projects\Web\AssetAlloc
Line 26 Column 9 GridView.DataSource = ds;
Error 21 'System.Web.UI.Page' does not contain a definition for 'DataItem'
and no extension method 'DataItem' accepting a first argument of type 'System.Web.UI.Page'
could be found (are you missing a using directive or an assembly reference?)
c:\Projects\Web\AssetAlloc
Line 26 Column 37 DataItem
using System;
using System.Data;
using System.Data.SqlClient;
using System.Web.Configuration;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
public partial class rssCS : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
GridView.DataSource = GetDataSet().Tables[3];
GridView.DataBind();
}
private DataSet GetDataSet()
{
DataSet ds = new DataSet("rsRSS");
ds.ReadXml("http://rss.news.yahoo.com/rss/mostviewed");
GridView.DataMember = "item";
GridView.DataSource = ds;
//GridView1.DataBind();
return ds;
}
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
GridViewRow row = e.Row;
DateTime CurrTime = DateTime.Now.Date;
if (row.RowIndex >= 0) // Start looping on the first row
if (row.RowType == DataControlRowType.DataRow)
{
row.Cells[0].Text = row.Cells[0].Text;
row.Cells[1].Text = row.Cells[1].Text;
}
}
}
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="~/App_Code/CodeCS/FeedRss.aspx.cs" Inherits="rssCS" %>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.SqlClient" %>
<%@ Import Namespace="System.Web.Configuration" %>
<%@ Import Namespace="System.Collections" %>
<%@ Import Namespace="System.Collections.Generic" %>
<%@ Import Namespace="System.Linq" %>
<%@ Import Namespace="System.Web" %>
<%@ Import Namespace="System.Web.UI" %>
<%@ Import Namespace="System.Web.UI.WebControls" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>FeedRss</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:GridView
id="GridView"
DataSourceId="srcMovies"
Runat="server" />
<ItemTemplate>
<asp:HyperLink ID="HyperLink1" NavigateUrl=<%#DataBinder.Eval(Container.DataItem,"link") %>
runat="server">
<%#DataBinder.Eval(Container.DataItem,"title") %>
</asp:HyperLink>
</ItemTemplate>
</asp:GridView>
<!--
See TextFile.txt
-->
<asp:SqlDataSource
id="srcMovies"
ConnectionString="Data Source=.\SQLExpress;
AttachDbFilename=|DataDirectory|MyDatabase.mdf;
Integrated Security=True;User Instance=True"
SelectCommand="SELECT * FROM Movies"
Runat="server" />
</div>
</form>
</body>
</html>
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
Sorry not to have got back to your earlier.
I tried following your suggestions, not sure if I have got it right yet.
I made some alterations and the new code is attached.
Still getting 1 error now:
Error 38 'System.Web.UI.Page' does not contain a definition for 'DataItem' and no extension method 'DataItem' accepting a first argument of type 'System.Web.UI.Page' could be found (are you missing a using directive or an assembly reference?) c:\Projects\Web\AssetAlloc
<%#DataBinder.Eval(Contain
Open in new window