accordion lier a un sitemap
Bonjour, j' ai cree un sitemap et j'ai ajoute un ajax accordion a ma page mais rien ne s'affiche, veuillez m'aidez
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
| <form id="form1" runat="server">
<asp:ScriptManager ID="ScriptManager1" runat="server" EnableScriptLocalization="true"></asp:ScriptManager>
<div>
<asp:Accordion ID="Accordion1" runat="server" SelectedIndex="0" FadeTransitions="true"
FramesPerSecond="60" TransitionDuration="75" AutoSize="None" RequireOpenedPane="true"
Width="99%" SuppressHeaderPostbacks="true" HeaderCssClass="AccordionHeaderCssClass"
HeaderSelectedCssClass="accordionHeaderSelected"
onitemdatabound="Accordion1_DataBound">
<HeaderTemplate>
<div class="accordionHeader">
<a href="<%# Eval("url") %>">
<%#Eval("title")%></a>
</div>
</HeaderTemplate>
<ContentTemplate>
<div class="accordionContent">
<table>
<asp:Repeater ID="Repeater1" runat="server">
<ItemTemplate>
<tr>
<td id="AccordionSideBarItem">
<a href="<%# ((System.Web.SiteMapNode)Container.DataItem).Url %>">
<%# ((System.Web.SiteMapNode)Container.DataItem).Title %></a>
</td>
</tr>
</ItemTemplate>
</asp:Repeater>
</table>
</div>
</ContentTemplate>
</asp:Accordion>
<asp:SiteMapDataSource ID="SiteMapDataSource1" runat="server" ShowStartingNode="False" />
</div>
</form> |
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
SiteMapDataSourceView siteMapView = (SiteMapDataSourceView)SiteMapDataSource1.GetView(string.Empty);
SiteMapNodeCollection nodes = (SiteMapNodeCollection)siteMapView.Select(DataSourceSelectArguments.Empty);
Accordion1.DataSource = nodes;
Accordion1.DataBind();
}
}
protected void Accordion1_DataBound(object sender, AjaxControlToolkit.AccordionItemEventArgs e)
{
if (e.ItemType == AjaxControlToolkit.AccordionItemType.Content)
{
AjaxControlToolkit.AccordionContentPanel cPanel = e.AccordionItem;
System.Web.UI.WebControls.Repeater rptr = (Repeater)cPanel.Controls[1];
SiteMapNode sNode = (System.Web.SiteMapNode)((AjaxControlToolkit.AccordionItemEventArgs)e).AccordionItem.DataItem;
System.Web.SiteMapNodeCollection childNodes = sNode.ChildNodes;
if (childNodes != null && childNodes.Count > 0)
{
rptr.DataSourceID = null;
rptr.DataSource = childNodes;
rptr.DataBind();
}
}
} |
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| <?xml version="1.0" encoding="utf-8" ?>
<siteMap xmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0" >
<siteMapNode title="Accueil" url="Accueil.aspx">
<siteMapNode title="Peter" url="">
<siteMapNode title="Section 1a" url="Default.aspx" description="" />
<siteMapNode title="Section 1b" url="D.aspx" description ="" />
</siteMapNode>
<siteMapNode title="Lois" url="">
<siteMapNode title="Section 2a" url="A.aspx" description ="" />
<siteMapNode title="Section 2b" url="F.aspx" description ="" />
</siteMapNode>
<siteMapNode title="Stewie" url="">
<siteMapNode title="Section 3a" url="R.aspx" description ="" />
<siteMapNode title="Section 3b" url="Default2.aspx" description ="" />
</siteMapNode>
</siteMapNode>
</siteMap> |
et dans le webconfig :
Code:
1 2 3 4 5 6 7 8 9
| <siteMap defaultProvider="XmlSiteMapProvider" enabled="true" >
<providers >
<clear/>
<add name="XmlSiteMapProvider"
type="System.Web.XmlSiteMapProvider, System.Web,Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
siteMapFile="web.sitemap"
securityTrimmingEnabled="true"/>
</providers >
</siteMap > |