RSS送纸器自定义网页控件

分享于 

3分钟阅读

Web开发

  繁體 雙語

问题

真正简单的联合( RSS ) 是一种轻量级的XML格式,旨在共享标题和其他网页内容。 它变得越来越流行,因为它的简单和标准化。 目前市场上已经有许多RSS网络控件,它们确实非常好和全面。 但是很多人以网格或者表格的形式输出提要。

解决办法是什么呢

那么为什么要创建另一个? 如果我们想要对输出和提要的显示进行 GREATER 控制,并且不想显示表或者网格中的提要。 我还觉得,对于这样一个简单的问题,已经存在的控件太复杂了。 控件派生自 Repeater,并将公开 ItemCount 属性,该属性将在显示的项目上显示一个限制。

RSSFeeder类

大多数功能都位于 DataSource 属性中。 通过重写转发器 DataSource 属性的默认行为,可以允许分配RSS源 URL:

publicoverrideobject DataSource
{ 
 get{returnbase.DataSource;} 
 set 
 {
 if(valueisstring)
 {
 try {
 XmlTextReader xtr = new XmlTextReader(value.ToString());
 DataSet ds = new DataSet();
 ds.ReadXml(xtr);
 xtr.Close();
 base.DataSource = ds.Tables[3];
 }
 catch {
 thrownew ArgumentException("Url must be a valid rss feed.");
 }
 }
 elsebase.DataSource = value;
 }
}

从上面的代码中可以看到,在设置 DataSource 属性时,我们首先检查它是否为 字符串 如果是,我们假设这是一个RSS提要的URL。 我们把这个包起来 try - catch 如果不是URL或者有效的RSS提要。 如果 DataSource 不是 字符串 然后我们就像往常一样。 我们使用 XmlTextReader 类读取XML字符串并加载到 DataSet 中。 然后我们将第三个表分配给 DataSource

此外,在 DataSource 中,我们还重写 OnItemDataBound 事件。 这样我们就可以计算和限制显示的条目:

protectedoverridevoid OnItemDataBound(RepeaterItemEventArgs e)
{
 if(itemCount!= 0 && i > itemCount)
 e.Item.Visible = false;
 i++;
 base.OnItemDataBound(e); 
}

我们首先检查 ItemCount 属性是否已经设置,然后检查变量 i 是否未超过它。 当 i 超过 ItemCount 时,它将隐藏提要中的所有其他项。

结束语

这种控制非常简单但有效。 利用rtc控件的灵活性和自定义web控件的自然封装使这一切成为一个完美的a。

链接和资源


WEB  控制  FEED  RSS  web-control  
相关文章