【发布时间】:2010-08-19 19:02:05
【问题描述】:
我有一个使用 XMLDataSource 生成电影列表 (Movies.aspx) 的中继器控件。我需要通过 MovieDetails.aspx?movie=Matrix 等查询参数链接到详细页面。我在 MovieDetails.aspx 页面上使用什么控件来呈现单个电影,最好使用 ItemTemplate 和我自己的 HTML。
我的数据来源:
<asp:XmlDataSource ID="MoviesXmlDataSource" runat="server"
DataFile="~/Movies.xml" XPath="movies/movie"></asp:XmlDataSource>
我阅读了 StackOverflow 帖子 Send string with QueryString in Repeater Control in ASP.net 并通过这样的转发器列出了我的项目:
<asp:Repeater ID="Repeater1" runat="server" DataSourceID="MoviesXmlDataSource">
<HeaderTemplate>
<ul class="productlist">
</HeaderTemplate>
<ItemTemplate>
<li>
<a href="MovieDetails.aspx?movie=<%#Eval("title")%>"></a>
<img src="Images/<%#Eval("image") %>" /><br/>
<b><%#Eval("title") %></b>
</li>
</ItemTemplate>
<FooterTemplate>
</ul>
</FooterTemplate>
</asp:Repeater>
在我的 MovieDetail.aspx 上,我得到了预期的查询字符串参数。但是,我不知道如何从我的 XMLDataSource 中获取此项目并很好地呈现它。我想出了如何使用 GridView 来执行此操作,然后根据您在网格中单击的内容呈现 DetailsView,但这太难看了。 Repeater 让我可以指定自己的 HTML,但仅限于列表而不是单个项目。
【问题讨论】: