- Mesajlar
- 1,730
filtreleme yapacağımız xmller için özellik olarak tanımlamamız gerekmektedir. Örneğin Xmlimiz aşağıdaki gibi olsun.
Daha sonra XmlDataSource umuzu ve Bunu için kullanacağımız Repeaterı aşağı şekilde yapılandıracağız.
Yani özellik olan sayfalar için @özellik_adı kullanılmalıdır. XPath ilede bunları @ işareti kullanarak gösteririz. Mesela XPath="menuler/menu/altmenu" yerine
XPath="menuler/menu" yazarak XmlDatasource umuzu tanımlasaydık. Repeater içindeki XPathlerimizde ("altmenu/@sayfaid") gibi bir tanımlama yapacaktık.
Kod:
<?xml version="1.0" encoding="utf-8"?>
<menuler>
<menu>
<altmenu dahilisayfa="False" haricisayfaurl="online.aspx" sayfaid="55" altsayfaid="31" baslik="Online Mesaj" hedef="_self" />
</menu>
<menu>
<altmenu dahilisayfa="False" haricisayfaurl="ZiyaretciDefteri.aspx" sayfaid="56" altsayfaid="31" baslik="Ziyaretçi Defteri" hedef="_self" />
</menu>
<menu>
<altmenu dahilisayfa="True" haricisayfaurl="" sayfaid="57" altsayfaid="61" baslik="Hakkımızda" hedef="_self" />
</menu>
<menu>
<altmenu dahilisayfa="True" haricisayfaurl="" sayfaid="58" altsayfaid="61" baslik="Personelimiz" hedef="_self" />
</menu>
</menuler>
Daha sonra XmlDataSource umuzu ve Bunu için kullanacağımız Repeaterı aşağı şekilde yapılandıracağız.
Kod:
<asp:XmlDataSource ID="XmlDataAltMenu" runat="server"
DataFile="~/Uploads/Xml/altmenuler.xml" XPath="menuler/menu/altmenu">
</asp:XmlDataSource>
Kod:
<asp:Repeater ID="rpMenulerAltSayfalar" runat="server" DataSourceID="XmlDataAltMenu">
<HeaderTemplate>
<ul>
</HeaderTemplate>
<ItemTemplate>
<li><a href='<%# XPath("@dahilisayfa").ToString().ToLower()=="true"?XPath("@sayfaid","menuAltSayfalar.aspx?SayfaID={0}"):XPath("@haricisayfaurl") %>'
title='<%# XPath("@baslik") %>'
target='<%# XPath("@hedef") %>'>
<%# XPath("@baslik") %></a></li>
</ItemTemplate>
<FooterTemplate>
</ul>
</FooterTemplate>
</asp:Repeater>
Yani özellik olan sayfalar için @özellik_adı kullanılmalıdır. XPath ilede bunları @ işareti kullanarak gösteririz. Mesela XPath="menuler/menu/altmenu" yerine
XPath="menuler/menu" yazarak XmlDatasource umuzu tanımlasaydık. Repeater içindeki XPathlerimizde ("altmenu/@sayfaid") gibi bir tanımlama yapacaktık.