<asp:Repeater ID="Repeater1" runat="server" DataSourceID="XmlDataSource1" >
            <ItemTemplate>
         <li>  
                  <%# Eval("ID")%> //这样显示没有问题,可是我要<%# Eval("Name")%> ,<%# Eval("email")%>...就不行了,提示没这属性,请问这个问题我改如何解决?我用的是:VS2005,NET2.0
         </li>
            </ItemTemplate>
            </asp:Repeater>
            <asp:XmlDataSource ID="XmlDataSource1" runat="server" DataFile="~/khfk/db_kh.xml"  ></asp:XmlDataSource>XML文件
<?xml version="1.0" encoding="utf-8"?>
<Users>
  <User ID="TTTTTT">
    <Name>朗力</Name>
    <Email>[email protected]</Email>
    <Title>关于网站</Title>
    <Content>目前我们正在对网站进行更新工作。可能导致部分功能运行不稳定。我们会加快修改工作力度,争取早日把,一个崭新的传感器信息港展示在您的面前。在这期间,您遇到任何问题都可在这提问,或直接MAIL给我。感谢您的支持。谢谢</Content>
    <Date>2007-9-10</Date>
    <Reply Name="Biology" Content="期待中" />
  </User>
</Users>

解决方案 »

  1.   

    很显然是数据节点不匹配的问题
    教你个笨法
    dataset把xml读进去
    然后看看dataset里面是什么
      

  2.   

    给楼主一个demo
    小小延伸一下就可以解决楼主的问题<%@ Page Language="C#" %>
    <%@ Import Namespace="System.Xml"%>  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><script runat="server">
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!Page.IsPostBack)
            {
                XmlDocument doc = new XmlDocument();
                doc.Load(Server.MapPath("temp.xml"));
                XmlNodeList nodes = doc.SelectNodes("//User");
                myRpeater.DataSource = nodes;
                myRpeater.DataBind();
            }
        }</script><html xmlns="http://www.w3.org/1999/xhtml" >
    <head runat="server">
        <title>test</title>
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
        <asp:Repeater runat="server" ID="myRpeater" >
        <HeaderTemplate><ul>标题</HeaderTemplate>
        <ItemTemplate>
            <li>姓名:<%#((XmlNode)Container.DataItem)["Name"].InnerText%></li>
            <li>Email:<%#((XmlNode)Container.DataItem)["Email"].InnerText%></li>
            <li>Content:<%#((XmlNode)Container.DataItem)["Content"].InnerText%></li>
        </ItemTemplate>
        <FooterTemplate></ul></FooterTemplate>
        </asp:Repeater>
        </div>
        </form>
    </body>
    </html>
      

  3.   

    这个DEMO运行没问题,可我还是想将XmlDataSource这个弄出来,毕竟XmlDataSource是VS的基本功能,应该有个解决的办法的吧.VS2005的XmlDataSource做数据原进行绑定时<%# Eval("Name")%> 提示
    "DataBinding:“System.Web.UI.WebControls.XmlDataSourceNodeDescriptor”不包含名为“Name”的属性"
    错误。
      

  4.   

    你的写法只可以绑定属性,用XPath
    <asp:Repeater ID="Repeater1" runat="server" DataSourceID="XmlDataSource1">
                <ItemTemplate>
                    <li><%# XPath("Name").ToString()%></li>
                </ItemTemplate>
            </asp:Repeater>
      

  5.   

    <%@ Import Namespace="System.Xml" %>也别忘了
      

  6.   

    http://developer.51cto.com/art/200611/34730_1.htm感谢virusplayer,问题解决!!相关详细内容我在网上也找到了,在上面的那个网址.