1
我想將Repeater控件綁定到充滿XML數據的數據集,但我不知道如何在Repeater中顯示屬性。數據集中的xml attribure
XML文件:
<root>
<items>
<item id="9" name="111111111111" description="111111245" views="1" galleryID="0" />
</items>
</root>
直放站代碼:
<asp:Repeater ID="rptrGalleries" runat="server">
<ItemTemplate>
<a href='Page?id=<%#DataBinder.Eval(Container.DataItem, "id") %>'><%#DataBinder.Eval(Container.DataItem, "name") %></a>
</ItemTemplate>
</asp:Repeater>
代碼隱藏:
XDocument doc = XDocument.Load(Server.MapPath("~/xml/gallery.xml"));
IEnumerable<XElement> items = from item in doc.Descendants("item")
orderby Convert.ToDateTime(item.Attribute("lastChanges").Value) descending
where int.Parse(item.Attribute("galleryID").Value) == 0 && bool.Parse(item.Attribute("visible").Value) != false
select item;
DataSet ds = new DataSet();
ds.ReadXml(new StringReader(doc.ToString()));
rptrGalleries.DataSource = ds;
rptrGalleries.DataBind();
當我編譯的網站我收到此錯誤:
System.Web.HttpException: DataBinding: 'System.Data.DataRowView' does not contain a property with the name 'id'.
儘管我在下面提供了一種替代方法,但我認爲問題在於如何在此處構建數據集。另外,當你根本不使用結果時,爲什麼你甚至會調用linq查詢來填充項目? – CkH 2010-06-09 16:17:14