У меня есть XmlDataSouce
с фильмами и актерами. Я хотел бы перечислить каждый фильм с указанными актерами. Я использую ListView
элементы управления с ClientIDMode="Predictable"
и ClientIDRowSuffix
, чтобы убедиться, что у меня будут идентификаторы, которые я могу использовать в своем JavaScript.
У меня есть следующее XmlDataSource
:
<asp:XmlDataSource ID="XmlDataSource1" runat="server">
<Data>
<Movies>
<Movie Name="What Dreams May Come" Ranking="7" MovieId="6546" >
<Actor FullName="Robin Williams" ActorId="1573" />
<Actor FullName="Cuba Gooding" ActorId="1957" />
</Movie>
<Movie Name="A Beautiful Mind" Ranking="10" MovieId="5151" >
<Actor FullName="Russell Crowe" ActorId="1231" />
<Actor FullName="Ed Harris " ActorId="1923" />
</Movie>
</Movies>
</Data>
</asp:XmlDataSource>
Теперь я бы хотел посмотреть:
<asp:ListView ID="ListView1" runat="server" ClientIDMode="Predictable"
ClientIDRowSuffix="MovieId" DataSourceID="XmlDataSource1">
<ItemTemplate>
<div id="item" runat="server" clientidmode="Predictable">
Name: <asp:Label ID="lblName" runat="server" Text='<%# Eval("Name") %>' /><br />
Actors:
<asp:ListView ID="Actors" runat="server"
ClientIDMode="Predictable" ClientIDRowSuffix="ActorId"
DataSource='<%# XPathSelect("Actor") %>' />
<ItemTemplate>
<asp:Label ID="lblActorName" runat="server"
Text='<%# XPath("@FullName") %>' />
</ItemTemplate>
<LayoutTemplate>
<asp:PlaceHolder id="itemPlaceholder" runat="server" />
</LayoutTemplate>
<ItemSeparatorTemplate>,</ItemSeparatorTemplate>
</asp:ListView>
<br /><br />
</div>
</ItemTemplate>
<LayoutTemplate>
<asp:PlaceHolder id="itemPlaceholder" runat="server" />
</LayoutTemplate>
</asp:ListView>
выглядит отлично, но выдает следующее исключение:
Привязка данных: «System.Xml.XmlElement» не содержит свойство с
имя 'ActorId'.
Как правильно установить ClientIDRowSuffix
?
Комментарии высоко ценятся.
Ps. Я использовал <%# Eval() %>
, но он привязан к записи фильма.