如何从XML源将URL传递到asp.net转发器?

时间:2012-03-26 17:16:19

标签: c# asp.net xml asprepeater

它实际上比标题更复杂。我正在试图弄清楚如何从XML源传递我自己的预定义URL plus ID - 所有这些都作为锚标记中的href。

基本上,我有一个具有不同标题和ID的XML源:

    <root>
      <mainNode>
         <title>ABC</title>
         <ID>100</ID>
      </mainNode>
      <mainNode>
         <title>DEF</title>
         <ID>101</ID>
      </mainNode>
    </root>

我正在将标题传递给转发器,并希望有一个锚标记,如下所示:

    <asp:Repeater ID="xPathRepeater" runat="server">
    <ItemTemplate>
        <li>
            <h1><%#XPath ("title") %></h1> <!--In the first case "ABC" -->
            <a href="preDefinedPathInCodeBehind.aspx?100>Read More...</a>
        </li>
    </ItemTemplate>
</asp:Repeater>

其中100是我从XML源获取的ID。

我不知道如何做到这一点。

这是我背后的代码:

    protected void XMLsource()
{
    string URLString = "http://ExternalSite.com/xmlfeed.asp";

    XmlDataSource x = new XmlDataSource();
    x.DataFile = URLString;
    x.XPath = String.Format(@"root/mainNode");

    xPathRepeater.DataSource = x;
    xPathRepeater.DataBind();
}

任何帮助将不胜感激。非常感谢你!

4 个答案:

答案 0 :(得分:1)

我认为这就是你要求的?

  <asp:Repeater ID="xPathRepeater" runat="server">
  <ItemTemplate>
    <li>
      <h1><%#XPath ("title") %></h1> <!--In the first case "ABC" --> 
      <a href="preDefinedPathInCodeBehind.aspx?<%#XPath ("ID") %>">Read More...</a>
    </li>
  </ItemTemplate>
</asp:Repeater>

答案 1 :(得分:0)

你试过这个吗?

<a href='preDefinedPathInCodeBehind.aspx?' + '<%# XPath("ID") %>'>Read More...</a>

答案 2 :(得分:0)

或者这个..

   <asp:Repeater ID="xPathRepeater" runat="server">
            <ItemTemplate>
                <li>
                    <h1> <%#XPath ("title") %></h1>
                    <!--In the first case "ABC" -->
                    <a href=  "<%# "preDefinedPathInCodeBehind.aspx?" + XPath ("ID")  %>" >Read More...</a> </li>
            </ItemTemplate>
        </asp:Repeater>

答案 3 :(得分:0)

是不是意味着?

<asp:Repeater ID="xPathRepeater" runat="server">
        <ItemTemplate>
            <li>
                <h1>
                    <%#XPath ("title") %></h1>
                <!--In the first case "ABC" -->
                <a href="preDefinedPathInCodeBehind.aspx?<%#XPath ("ID") %>">Read More...</a> </li>
        </ItemTemplate>
    </asp:Repeater>

尝试。它有效。