【问题标题】:binding random XmlDataSource to a repeater with Xpath使用 Xpath 将随机 XmlDataSource 绑定到中继器
【发布时间】:2011-01-18 12:52:40
【问题描述】:

我正在创建一个页面,以将电影预告片列表放在中继器内的 asp.net 网页上。

数据源是在线 XML 提要。

为此,我将转发器绑定如下...

string XML_FEED_URL = "http://some-cinema-feed.com/comingsoon/";

XmlDataSource data_source = new XmlDataSource();
data_source.DataFile = XML_FEED_URL;
data_source.XPath = "/movies/movie[position() > 0 and position() < 3]";

this.moviePreciewsRepeater.DataSource = data_source;
this.moviePreciewsRepeater.DataBind();

问题是提要的长度会定期变化,而不是使用 XPATH 选择一系列电影(即 XML 中的 1-3 部),我需要从 XML 中选择 3 部完全随机的电影并将其绑定回中继器。

【问题讨论】:

  • 好问题,+1。请参阅我的答案以获得简单而简短的解决方案:)
  • 除了@Dimitre 的好答案,请注意在XPath 中position() &gt; 0 总是正确的。

标签: asp.net xml data-binding xpath repeater


【解决方案1】:

使用:

data_source.XPath = 
    string.Format(@"/movies/movie[position() = {0} 
                               or position() = {1}
                               or position() = {2}
                                 ]",
                  random1, random2, random3); 

其中变量random1、random2 和random3 是您已经计算的随机整数。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-26
    • 2011-04-11
    • 1970-01-01
    • 2011-01-11
    • 2011-01-17
    • 1970-01-01
    相关资源
    最近更新 更多