Treeview, event and databinding

Last post 11-26-2009 5:33 AM by samarobrive. 2 replies.

Sort Posts:

  • Treeview, event and databinding

    11-26-2009, 3:59 AM
    • Member
      point Member
    • samarobrive
    • Member since 10-29-2009, 4:07 AM
    • Posts 11

    For a CMS, I use the treeview control with CSS friendly adapter binded with the sitemap :

      <asp:TreeView DataSourceID="SiteMapDataSource1" ID="EntertainmentTreeView" runat="server" OnSelectedNodeChanged="OnClick" OnAdaptedSelectedNodeChanged="OnClick" >
       <DataBindings>
        <asp:TreeNodeBinding DataMember="SiteMapNode" TextField="Title" ValueField="url" />
       </DataBindings>
      </asp:TreeView>

        <asp:SiteMapDataSource ID="SiteMapDataSource1" runat="server" />

    But when I click on a node, the treeview does not respond, doesn't send event. If I replace the ValueField "url" by for example "title", the event is ok.

    How can I force the treeview to send Event with ValueField="url" ?

    You can see a sample at www.almageste.info/preuve2.zip.

    Thanks for your help !

     

  • Re: Treeview, event and databinding

    11-26-2009, 4:59 AM
    • Participant
      1,216 point Participant
    • anooj
    • Member since 06-23-2009, 10:04 AM
    • Posts 269

    Associating your SiteMap to a TreeView is StraightForward.

    Make sure your Web.SiteMap is in correct shape,like this:-

    <?xml version="1.0" encoding="ISO-8859-1" ?>
    <siteMap>
      <siteMapNode title="Home" url="/aspnet/w3home.aspx">
        <siteMapNode title="Services" url="/aspnet/w3services.aspx">
          <siteMapNode title="Training" url="/aspnet/w3training.aspx"/>
          <siteMapNode title="Support" url="/aspnet/w3support.aspx"/>
        </siteMapNode>
      </siteMapNode>
    </siteMap>

    Then use SiteMapDataSource
     

     <asp:SiteMapDataSource ID="SiteMapDataSource1" runat="server" /> 
    
    //and in ur Aspx page add a tree view like this:-
    
    <asp:TreeView runat="server" DataSourceId="SiteMapDataSource1" />
    

     


     

    Alse refer this:-

    
    

    http://www.w3schools.com/aspnet/aspnet_navigation.asp

    
    

     

    
    

    I hope this helps..

    
    

    Enjoy...

    
    

     

  • Re: Treeview, event and databinding

    11-26-2009, 5:33 AM
    • Member
      point Member
    • samarobrive
    • Member since 10-29-2009, 4:07 AM
    • Posts 11

    I also do this and my SiteMapDataSource is OK.

    The page code is :

    <%@ Page Language="C#" %>

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <script runat="server">
     public void OnClick(Object sender, EventArgs e)
     {
      MessageLabel.Text = "You selected " + EntertainmentTreeView.SelectedNode.Text + ".";
     }
    </script>
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head id="Head1" runat="server">
     <title></title>
    </head>
    <body>
     <form id="form1" runat="server">
     <asp:TreeView DataSourceID="SiteMapDataSource1" ID="EntertainmentTreeView" runat="server" OnSelectedNodeChanged="OnClick" OnAdaptedSelectedNodeChanged="OnClick">
      <DataBindings>
       <asp:TreeNodeBinding DataMember="SiteMapNode" TextField="Title" NavigateUrlField="url" SelectAction="Select" />
      </DataBindings>
     </asp:TreeView>
     <asp:Label ID="MessageLabel" runat="server" />
     <asp:SiteMapDataSource ID="SiteMapDataSource1" runat="server" />
     </form>
    </body>
    </html>

    And the Sitemapdatasource is:

    <?xml version="1.0" encoding="utf-8" ?>

    <siteMap xmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0" >

    <siteMapNode url="" title="" description="">

    <siteMapNode url="url1.aspx" title="url title 1" description="description 1" />

    <siteMapNode url="url2.aspx" title="url title 2" description="description 2" />

    </siteMapNode>

    </siteMap>

Page 1 of 1 (3 items)