Xml i Databinding anidats en ASP.NET

Algunes vegades quan estem enllaçant a documents Xml amb un XmlDataSource ens podem trobar amb la necessitat de recórrer nodes inferiors al node que estem enllaçat. És en aquest moment quan podem utilitzar un control Repeater per recórrer aquest nou arbre d’elements. Per fer això no és necessari afegir cap DataSource ni programar cap línia de codi.

Imagina un document Xml amb una estructura:

<item atr="A">
<subitem subatr="1"></subitem>
<subitem subatr="2"></subitem>
</item>

Des de la pàgina web posem un ListView per recórrer els primers elements

<listview DataSourceID="xmldatasource1">
<itemtemplate>
<asp:label text='<%# Eval("atr") %>'></asp:label>
</itemtemplate>
</listview>

Dins del ListView posem un Repeater per recórrer els segons elements

<listview DataSourceID="xmldatasource1">
<itemtemplate>
<asp:label text='<%# Eval("atr") %>'></asp:label>
<div>
<asp:Repeater>
<itemtemplate>
<asp:label text='<%# Eval("subatr") %>'></asp:label>
</itemtemplate>
</asp:Repeater>
</div>
</itemtemplate>
</listview>

Per tal de que el Repeater funcioni necessitem assignar a la propietat DataSource l’expressió de Databinding XPathSelect.

<asp:Repeater Datasource='<%# XPathSelect("subitem") %>'>
<itemtemplate>
<asp:label text='<%# Eval("subatr") %>'></asp:label>
</itemtemplate>
</asp:Repeater>

Anuncis

Deixa un comentari

Fill in your details below or click an icon to log in:

WordPress.com Logo

Esteu comentant fent servir el compte WordPress.com. Log Out / Canvia )

Twitter picture

Esteu comentant fent servir el compte Twitter. Log Out / Canvia )

Facebook photo

Esteu comentant fent servir el compte Facebook. Log Out / Canvia )

Google+ photo

Esteu comentant fent servir el compte Google+. Log Out / Canvia )

Connecting to %s