Avatar billede simsen Mester
07. juli 2008 - 10:57 Der er 1 løsning

TreeView på MasterPage

Hej,

Jeg har på min MasterPage et TreeView (som er en menu). Jeg vil have det sådan, at hver gang, jeg klikker på en bestemt node i TreeView, skal den opdatere ContentPlaceHolder med id'et fra den valgte node. Det der ligger i ContentPlaceHolder er den samme side (Default2.aspx), som udfra id'et henter indholdet i en database.

Jeg kan bare ikke få det til at virke. Hver evig eneste gang, henter den default siden. Det er som om den ikke viser at SelectedNode.Value har et id :-(

Håber der er nogen, der kan fortælle mig hvor det fejler henne i min kode.

Default2.aspx.cs (her jeg henter SelectedNode.Value):
protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {

        }

        //04-07-2008 AS
        //Test if session has a pageId - if no, frontpage loads
        TreeView MenuTree = (TreeView)Master.FindControl("MenuTree");
        int pageId = 0;
        if (MenuTree.SelectedNode != null)
        {
            pageId = Convert.ToInt32(MenuTree.SelectedNode.Value);
        }
        else
        {
            pageId = PageProd.GetPageIdForFrontPage();
        }

        try
        {
            Page page = new Page();
            if (page.ProdGetPageSpecific(pageId) == Status.Success)
            {
                //lblMenuId.Text = page.fEditPageFId;
                lblEditContent.Text = page.fProdPageBody;
            }
        }
        catch
        { }

    }

MPHead3.master (Her jeg har min TreeView):
<body>
    <form id="form1" runat="server">
    <asp:ScriptManager ID="ScriptManager1" EnablePartialRendering="true" runat="server">
    </asp:ScriptManager>
    <div>
        <table cellpadding="0" cellspacing="0" border="0" width="100%">
            <tr>
                <td style="text-align: left; vertical-align: top">
                    <img src="Images/logo3.gif" alt="" />
                </td>
            </tr>
            <tr>
                <td style="height: 20px"></td>
            </tr>
            <tr>
                <td style="text-align: left; vertical-align: top">
                    <table cellpadding="0" cellspacing="0" border="0">
                        <tr>
                            <td style="text-align: left; vertical-align: top; width: 200px">
                                <asp:TreeView ID="MenuTree" EnableClientScript="False" runat="server"
                                    ExpandDepth="15" ShowExpandCollapse="False"
                                    ontreenodeexpanded="MenuTree_TreeNodeExpanded"
                                    ontreenodepopulate="MenuTree_TreeNodePopulate" PathSeparator="/">
                                    <NodeStyle CssClass="menulink" />
                                    <SelectedNodeStyle CssClass="menulink" />
                                </asp:TreeView>
                                <br />
                                Menu id: <asp:Label ID="lblMenuId" runat="server" Visible="True" Text="1"></asp:Label>
                            </td>
                            <td style="text-align: left; vertical-align: top; width: 200px">
                                <asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional">
                                    <ContentTemplate>
                                        <asp:ContentPlaceHolder id="ContentPlaceHolder1" runat="server">       
                                        </asp:ContentPlaceHolder>
                                    </ContentTemplate>
                                </asp:UpdatePanel>
                               
                            </td>
                        </tr>
                    </table>                   
                </td>
            </tr>
        </table>       
    </div>
    </form>
</body>

MPHead3.master.cs (Koden til MasterPage):
protected void MenuTree_TreeNodeExpanded(object sender, TreeNodeEventArgs e)
    {
        HidePanels();
        HideMessages();

        //16-06-2008 AS
        //Ved klik på undermenuer expand submenuer
        int key_id = Convert.ToInt32(e.Node.Value);

        try
        {
            lblMenuId.Text = key_id.ToString();

            if (e.Node.Depth == 0)
            {
                TreeView t = (TreeView)sender;

                for (int i = 0; i < t.Nodes.Count; i++)
                {
                    if (t.Nodes[i] != e.Node)
                    {
                        t.Nodes[i].CollapseAll();
                    }
                }
            }
        }
        catch
        { }

        //23-06-2008 AS
        //Henter valgte side frem
        try
        {
            Page page = new Page();
            if (page.ProdGetPageSpecific(key_id) == Status.Success)
            {
                lblMenuId.Text = page.fEditPageFId;
                Session["pageId"] = page.fEditPageFId;
                //lblEditContent.Text = page.fProdPageBody;
            }
        }
        catch
        { }
    }

mvh
simsen
Avatar billede simsen Mester
07. juli 2008 - 15:43 #1
Lukker - har fundet fejlen, som var længere inde i koden end det viste.....
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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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