Avatar billede felding Nybegynder
22. marts 2006 - 09:50 Der er 10 kommentarer

TreeView "husker" ikke den valgte node.

Hej
Jeg har lavet en masterpage i .net 2.0 hvor jeg har tilføjet et treeview som jeg udfylder med data fra en database. Der er desuden sat en navigatiourl på hvert enkelt node så når jeg klikker på dem skifter jeg mellem sidderne i contentplaceholder.
Mit problem er nu at når jeg klikker på en node kommer den rigtig side godt nok op, men treeviewet bliver ligesom nulstillet.
Koden fra Page_Load:
if (!IsPostBack)
{
    populatedrootnode();
}     
Jeg har debuget mig frem til at den køre populatedrootnode hver gang jeg klikker på en node selvom jeg spørg på ispostback.

Er der nogle som kan hjælpe med dette problem?
Avatar billede dr_chaos Nybegynder
22. marts 2006 - 10:00 #1
Det er fordi masterpagen ikke bliver postet back.
Prøv at hente data ud med en sqldatasource eller lignende.
Eller enable cache.
Avatar billede felding Nybegynder
22. marts 2006 - 10:08 #2
Jeg henter mine data op via en class så jeg har et dataset, som jeg så bruger som grundlag for treeviewet.. Jeg har desuden prøvet at paste koden over i en almindelig aspx side og her sker det samme..
Avatar billede dr_chaos Nybegynder
22. marts 2006 - 10:15 #3
hvordan ser koden for treeviewet ud ?
Avatar billede felding Nybegynder
22. marts 2006 - 10:18 #4
protected void populatedtreenode(int x, TreeNode parentnode)
    {
        DataSet dst = mydbclass.GetTreeViewData();
        DataRow[] drmaster;
       
        drmaster = dst.Tables["pfolder"].Select("[PF-Parent] =" + x);
       
               
        for(int i = 0 ; i < drmaster.GetLength(0);i++)
        {
                         
            TreeNode mynode = new TreeNode();
           
            mynode.Text = (string)drmaster[i]["PF-Name"];
            mynode.Value = drmaster[i]["PF-ID"].ToString();
            mynode.NavigateUrl = "default3.aspx?pfid="+mynode.Value+"";
                     
            parentnode.ChildNodes.Add(mynode);

            populatedtreenode(int.Parse(mynode.Value), mynode);
        }
     
    }
    public void expand_tree(TreeNode n)
    {
        if (n.Parent != null)
            expand_tree(n.Parent);
        n.Expand();
    }

    protected void populatedrootnode()
    {
        DataSet dst = mydbclass.GetTreeViewData();
        DataRow[] drmaster;
     
        drmaster = dst.Tables["pfolder"].Select("[PF-Parent] =0");
       
        for(int i = 0 ; i < drmaster.GetLength(0);i++)
        {
                           
            TreeNode mynode = new TreeNode();
            mynode.Text = (string)drmaster[i]["PF-Name"];
            mynode.Value = drmaster[i]["PF-ID"].ToString();
            mynode.NavigateUrl = "Default2.aspx";
            TreeView1.Nodes.Add(mynode);

            populatedtreenode(int.Parse(mynode.Value),mynode);
           
        }
    }
Avatar billede dr_chaos Nybegynder
22. marts 2006 - 10:31 #5
jeg mente hvordan ser den ud på aspx siden ?
Avatar billede felding Nybegynder
22. marts 2006 - 10:33 #6
<asp:TreeView ID="TreeView1" runat="server" OnSelectedNodeChanged="TreeView1_SelectedNodeChanged" ExpandDepth="1" ImageSet="Simple" ShowLines="True" OnTreeNodeCheckChanged="TreeView1_TreeNodeCheckChanged" AutoGenerateDataBindings="False" EnableTheming="True">
            <ParentNodeStyle Font-Bold="False" />
            <HoverNodeStyle Font-Underline="True" ForeColor="#5555DD" />
            <SelectedNodeStyle Font-Underline="True" ForeColor="#5555DD" HorizontalPadding="0px"
                VerticalPadding="0px" />
            <NodeStyle Font-Names="Tahoma" Font-Size="10pt" ForeColor="Black" HorizontalPadding="0px"
                NodeSpacing="0px" VerticalPadding="0px" />
        </asp:TreeView>
Avatar billede dr_chaos Nybegynder
22. marts 2006 - 17:53 #7
prøv lige med:
    <asp:TreeView ID="TreeView1" runat="server" EnableViewState=true OnSelectedNodeChanged="TreeView1_SelectedNodeChanged" ExpandDepth="1" ImageSet="Simple" ShowLines="True" OnTreeNodeCheckChanged="TreeView1_TreeNodeCheckChanged" AutoGenerateDataBindings="True" EnableTheming="True">
            <ParentNodeStyle Font-Bold="False" />
            <HoverNodeStyle Font-Underline="True" ForeColor="#5555DD" />
            <SelectedNodeStyle Font-Underline="True" ForeColor="#5555DD" HorizontalPadding="0px"
                VerticalPadding="0px" />
            <NodeStyle Font-Names="Tahoma" Font-Size="10pt" ForeColor="Black" HorizontalPadding="0px"
                NodeSpacing="0px" VerticalPadding="0px" />
        </asp:TreeView>
Avatar billede felding Nybegynder
23. marts 2006 - 07:33 #8
Desværrer hjælper det heller ikke :-(
Avatar billede dr_chaos Nybegynder
23. marts 2006 - 12:11 #9
er det til en menu eller lignende ?
Avatar billede felding Nybegynder
23. marts 2006 - 12:18 #10
Ja det er til en slags menu det afbilldere et organisations diagram hvor man så har firmaer, divisioner, områder og afdelinger. Når man så klikker på en af de enkelte noder skal der vises de medarbejder som er i det man har valgt. Dette viser jeg en anden side med et gridview, således at man har treeview til venstre og gridviewt til højre..
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester