65.9K
CodeProject 正在变化。 阅读更多。
Home

构建一个消耗 XML Feed 的博客页面

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.76/5 (9投票s)

2007年10月2日

CPOL
viewsIcon

48145

downloadIcon

613

如何使用 XML Feed 构建博客页面

Screenshot - buildrssblog2.gif

引言

在本文中,我将展示我编写的一个代码片段,用于使用另一个博客引擎提供的 Web Feed 创建一个小型博客。

代码

让我们看看从 Feed 中检索数据的代码片段

protected void dataBind()
{
    //open RSS xml file

    XmlTextReader reader =
        new XmlTextReader("http://www.compranapoli.it/blog/rss.xml");

    DataSet ds = new DataSet();
    ds.ReadXml(reader); //put the rss in a dataset

    // Assigns the datset to the datagrid
    GridView1.DataSource = ds.Tables[2];

    // Binds the datagrid
    GridView1.DataBind();
}

dataBind() 方法使用 XmlTextReader 打开文件 rss.xml,将内容放入 DataSet,并将数据集中的一个表设置为用于显示数据的 GridView
这是我用来修改 GridView 外观的代码

<asp:GridView ID="GridView1" runat="server" 
        AutoGenerateColumns="false" BorderWidth="0"/>
 <Columns>
   <asp:TemplateField>
     <ItemTemplate>
      <h1><%# Eval("title") %></h1>
      <hr />
      <h4><%# Eval("pubDate")%></h4><br />
      <%# Eval("description")%><br /><br />
     </ItemTemplate>
   </asp:TemplateField>
 </Columns>
</asp:GridView>

默认情况下,GridView 不处理 XML 数据源的分页。 因此,我需要添加以下方法来处理分页

// Grid View Paging 

protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
    GridView1.PageIndex = e.NewPageIndex;
    GridView1.DataBind();
}

这是我在页面加载时调用 dataBind() 并使用优雅的 CSS 获得的结果

Screenshot - buildrssblog1.jpg

历史

  • [2007-10-02]: 发布 XML 解析器类的第一个版本
  • [2007-10-04]: 添加了源文件
  • [2011-10-31]: 对文章进行了主要修订,代码与之前相同
© . All rights reserved.