[ASP.NET] menu in- en uitklappen.

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
In ASP.NET heb ik een sitemap & een masterpage aangemaakt met een treeview. De sitemap zit in een sitemapdatasource. De code van de treeview is dit:

code:
1
2
3
4
5
6
7
8
9
10
            <asp:TreeView ID="TreeView1" runat="server" DataSourceID="SiteMapDataSource1" 
                    Width="230px" ImageSet="Arrows" 
                    onselectednodechanged="TreeView1_SelectedNodeChanged" ExpandDepth="0">
                <ParentNodeStyle Font-Bold="False" />
                <HoverNodeStyle Font-Underline="True" ForeColor="#5555DD" />
                <SelectedNodeStyle Font-Underline="True" ForeColor="#5555DD" 
                    HorizontalPadding="0px" VerticalPadding="0px" />
                <NodeStyle Font-Names="Verdana" Font-Size="8pt" ForeColor="Black" 
                    HorizontalPadding="5px" NodeSpacing="0px" VerticalPadding="0px" />
            </asp:TreeView>


Aangezien ExpandDepth op 0 staat, zal bij het laden van de site het menu volledig ingeklapt zijn. Als ik dan een menu open en op een link klik, kom ik op die pagina terecht maar is het menu terug volledig dichtgeklapt. Ik zou graag hebben dat dat deel van het menu open geklapt blijft. Ik heb al uren gezocht op Google maar vind jammer genoeg niets nuttig. Enige tips?

Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Kun je niet gewoon de selectednode zetten?

Euh; of wat Grijze Vos hieronder zegt :P

[ Voor 37% gewijzigd door RobIII op 12-05-2009 09:59 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

  • Grijze Vos
  • Registratie: December 2002
  • Laatst online: 28-02 22:17
EnableViewstate="true" ?

(gokje)

[ Voor 18% gewijzigd door Grijze Vos op 12-05-2009 09:57 ]

Op zoek naar een nieuwe collega, .NET webdev, voornamelijk productontwikkeling. DM voor meer info


Acties:
  • 0 Henk 'm!

  • IJsbeer
  • Registratie: Juni 2001
  • Niet online
Het is een refresh van de pagina, dus wordt de tree opnieuw opgebouwd en opnieuw de ExpandDepth op 0 gezet. Je zult dus de selectednode moeten zetten en de expanddepth niet in het geval je de selectednode zet.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Grijze Vos schreef op dinsdag 12 mei 2009 @ 09:57:
EnableViewstate="true" ?

(gokje)
Heb ik al geprobeerd, werkt niet. Bij nu even aan het zoeken op selectednode want snap niet goed wat jullie er mee bedoelen.

Acties:
  • 0 Henk 'm!

  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
Als je op een link klikt dan redirect je naar die pagina? Dan zal je op die pagina je Tree weer op moeten bouwen en de juiste properties moeten zetten.

Die pagina weet immers niet wat de status van je Tree was.

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Het is gelukt met de volgende code (en jullie hint):

code:
1
2
3
<asp:TreeView ID="TreeView1" runat="server" EnableViewstate="true" DataSourceID="SiteMapDataSource1" 
                    Width="230px" ImageSet="Arrows" 
                    onselectednodechanged="TreeView1_SelectedNodeChanged" PopulateNodesFromClient="False" ShowExpandCollapse="True" ExpandDepth="0">


code:
1
2
3
4
5
protected void TreeView1_SelectedNodeChanged(object sender, EventArgs e)
        {
            TreeView1.SelectedNode.SelectAction = TreeNodeSelectAction.Expand;

        }


EDIT: Zijn er trouwens gratis treeviews te downloaden? De standaard layout opties vind ik maar zwak en elke treeview layout die je vind online zijn betalend.

[ Voor 12% gewijzigd door Verwijderd op 12-05-2009 11:15 ]


Acties:
  • 0 Henk 'm!

  • IJsbeer
  • Registratie: Juni 2001
  • Niet online
Er zijn genoeg treeviews te vinden. Als je een asp.net treeview wilt hebben ken ik idd geen gratis varianten. Je kan ook een javascript tree gebruiken (zie bijvoorbeeld op de jQuery site) en die gebruiken, alleen dan kan je er vanuti asp.net niets mee... heeft dus zeker nadelen.

Ook kan het default tree van asp.net beter stylen, zie hiervoor: http://www.asp.net/cssadapters/treeview.aspx
Dit levert nettere html op, en die nettere html kan je makkelijk zelf stylen via css.

Acties:
  • 0 Henk 'm!

  • Grijze Vos
  • Registratie: December 2002
  • Laatst online: 28-02 22:17
Woy schreef op dinsdag 12 mei 2009 @ 10:32:
Als je op een link klikt dan redirect je naar die pagina? Dan zal je op die pagina je Tree weer op moeten bouwen en de juiste properties moeten zetten.

Die pagina weet immers niet wat de status van je Tree was.
Euhm, tenzij die tree op allebei de pagina's gewoon staat en de viewstate wordt bijgehouden, dan zou die tree gewoon vanuit de viewstate opnieuw geinstantieerd moeten worden.

Op zoek naar een nieuwe collega, .NET webdev, voornamelijk productontwikkeling. DM voor meer info


Acties:
  • 0 Henk 'm!

  • IJsbeer
  • Registratie: Juni 2001
  • Niet online
Grijze Vos schreef op dinsdag 12 mei 2009 @ 11:48:
[...]

Euhm, tenzij die tree op allebei de pagina's gewoon staat en de viewstate wordt bijgehouden, dan zou die tree gewoon vanuit de viewstate opnieuw geinstantieerd moeten worden.
Dat lijkt me zobiezo een not done situate. Posten naar jezelf dan werkt eht idd prima, maar posten naar een andere pagina en daar de viewstate gebruiken van de vorige pagina is vragen om problemen.

Acties:
  • 0 Henk 'm!

  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
Als je binnen dezelfde pagina blijft dan zou d.m.v. de viewstate de tree weer gewoon opgebouwt moeten worden inderdaad.

Maar als je naar een andere pagina redirect, dan word de view-state natuurlijk niet mee gestuurd.

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”

Pagina: 1