Avatar billede dr_chaos Nybegynder
30. maj 2005 - 14:16 Der er 9 kommentarer og
1 løsning

Side loader 2 gange.

Jeg har et treeview på min side. Det er et microsoft webcontrol treeview.
Jeg har lagt treeviewet i en web usercontrol.
Koden til treeviewet ser ud på denne måde:

<%@ Control Language="c#" AutoEventWireup="false" Codebehind="RepTraeMenu.ascx.cs" Inherits="Egenkontrol.UserControls.RepTraeMenu" enableViewState="True"%>
<%@ Register TagPrefix="iewc" Namespace="Microsoft.Web.UI.WebControls" Assembly="Microsoft.Web.UI.WebControls" %>
<iewc:treeview id="TraeMenu" SelectExpands="True" AutoPostBack="True" runat="server"></iewc:treeview>


Siden med treeview usercontrolen ser ud på denne måde:

<%@ Register TagPrefix="uc1" TagName="RepTraeMenu" Src="../UserControls/RepTraeMenu.ascx" %>
<%@ Page language="c#" Codebehind="WebForm1.aspx.cs" AutoEventWireup="false" Inherits="Egenkontrol.Egenkontrol.WebForm1" enableViewState="True" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
    <HEAD>
        <title>WebForm1</title>
        <meta name="GENERATOR" Content="Microsoft Visual Studio .NET 7.1">
        <meta name="CODE_LANGUAGE" Content="C#">
        <meta name="vs_defaultClientScript" content="JavaScript">
        <meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
    </HEAD>
    <body MS_POSITIONING="GridLayout">
        <form id="Form1" method="post" runat="server">
            <uc1:RepTraeMenu id="RepTraeMenu1" runat="server"></uc1:RepTraeMenu>
        </form>
    </body>
</HTML>


Problemet kommer når jeg loader siden første gang. Så vises treeviewet ganske fint men når jeg trykker på et punkt så loades hele  siden igen.
Hvis jeg derefter trykker på et punkt i treeviewet så folder den fint træet ud og holder den markerede position i treeviewet efter postback.
Jeg er ved at være lidt desperat :(
Avatar billede dr_chaos Nybegynder
30. maj 2005 - 14:25 #1
jeg vil gerne skrive noget mere opfølgende hvis det er nødvendigt.
Avatar billede snepnet Nybegynder
30. maj 2005 - 14:28 #2
det må du gerne :o)
kan godt være det er mig der er lidt tung i det, men jeg forstod ikke helt problemet.... du beskriver to situationer, hvor du trykker på et punkt, og begge steder omtaler du et postback.
kan jeg få dig til at skærpe din beskrivelse af selve problemet lidt ?
mvh
Avatar billede snepnet Nybegynder
30. maj 2005 - 14:29 #3
jeg sendte dig for øvrigt en hilsen i et andet spørgsmål du har oprettet - den gælder også her :o)
mvh
(havde bare spurgt om du ikke ville skrive til mig på snepnet@gmail.com)
Avatar billede dr_chaos Nybegynder
30. maj 2005 - 14:51 #4
ok prøver lige:
jeg har en usercontrol med et treeview.
http://msdn.microsoft.com/workshop/webcontrols/overview/treeview.asp <-- denne type treeview.
På dette treeview er autopostback enabled.
Data til treeviewet kommer fra en database. Alt dette sker uden nogen problemer.
Usercontrollen med treeviewet har jeg tilføjet til en aspx side.
Her vises treeviewet som det skal.

Når jeg første for første gang går ind på siden loades siden fint nok or treeviewet er synligt.
Da jeg bruger treeviewet som en menu skal treeviewet folde sig ud når jeg klikker på et punkt.
Alle punkter på niveau 1 har underpunkter.
Når siden har loadet ønsker jeg at bruge treeviewet derfor trykker jeg på et menupunkt.
Når jeg har gjort det sker der et autopostback på siden. Det er helt som det skal være.
Men når dette autopostback forekommer så loades hele treeviewet igen og det punkt jeg trykkede på foldes sammen igen.

Hvis jeg trykker på et punkt efter det første autopostback så folder træet sig ud som det skal og alt kører fint.
Avatar billede dr_chaos Nybegynder
30. maj 2005 - 14:51 #5
mht det andet spørgsmål så er jeg kommet videre så det var ikke nødvendigt ellers tak :)
Avatar billede dr_chaos Nybegynder
30. maj 2005 - 14:57 #6
jeg har lavet nogle screenshots af siden hvis det kan hjælpe
Avatar billede dr_chaos Nybegynder
30. maj 2005 - 15:23 #7
jeg kan sende dem til dig på din mail hvis det er ok ?
Avatar billede snepnet Nybegynder
30. maj 2005 - 17:47 #8
sorry... der kom lige noget op :o(
umiddelbart er det ikke standardopførsel for kontrollen, så du bliver nok nødt til at sende lidt kode, så jeg kan se hvordan du sætter kontrollen op med data fra basen mv.
(det at jeg spurgte om du ville sende en mail, havde ikke noget med spørgsmålet at gøre).
Avatar billede dr_chaos Nybegynder
31. maj 2005 - 09:54 #9
webform1.aspx der indeholder userecontrollen med treeviewet:
Der er ikke noget i cb filen.

<%@ Page language="c#" Codebehind="WebForm1.aspx.cs" AutoEventWireup="false" Inherits="Egenkontrol.Egenkontrol.WebForm1" %>
<%@ Register TagPrefix="uc1" TagName="RepTraeMenu" Src="../UserControls/RepTraeMenu.ascx" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
    <HEAD>
        <title>WebForm1</title>
        <meta content="Microsoft Visual Studio .NET 7.1" name="GENERATOR">
        <meta content="C#" name="CODE_LANGUAGE">
        <meta content="JavaScript" name="vs_defaultClientScript">
        <meta content="http://schemas.microsoft.com/intellisense/ie5" name="vs_targetSchema">
    </HEAD>
    <body MS_POSITIONING="GridLayout">
        <form id="Form1" method="post" runat="server">
            <uc1:RepTraeMenu id="RepTraeMenu1" runat="server"></uc1:RepTraeMenu>
        </form>
    </body>
</HTML>

Usercontrol filen:
<%@ Register TagPrefix="iewc"  Namespace="Microsoft.Web.UI.WebControls" Assembly="Microsoft.Web.UI.WebControls" %>
<%@ Control Language="c#" AutoEventWireup="false" Codebehind="RepTraeMenu.ascx.cs" Inherits="Egenkontrol.UserControls.RepTraeMenu" enableViewState="True"%>
<iewc:treeview id="TraeMenu" runat="server" AutoPostBack="True" SelectExpands="True" ShowToolTip="False"></iewc:treeview>


cb filen til usercontrollen:
Træet bygges op af 3 datasets fra databasen.


namespace Egenkontrol.UserControls
{
    using System;
    using System.Data;
    using System.Drawing;
    using System.Web;
    using System.Web.UI.WebControls;
    using System.Web.UI.HtmlControls;
    using Microsoft.Web.UI.WebControls;
    using Dti.Objekter.RepTrae;
    using System.Configuration;

    /// <summary>
    ///        Summary description for RepTrae.
    /// </summary>
    public abstract class RepTraeMenu : System.Web.UI.UserControl
    {
        public Microsoft.Web.UI.WebControls.TreeView TraeMenu;

        public void FyldRepTrae()
        {
            RepTrae rt = new RepTrae(ConfigurationSettings.AppSettings["ConnectionString"]);
            DataSet ds= rt.HentTraeMenuPunkterNiveau1();
            foreach(DataRow rowNiveau1 in ds.Tables["TraeMenuNiveau1"].Rows)
            {
                TreeNode Niveau1 = new TreeNode();
                Niveau1.Text = rowNiveau1["Titel"].ToString();
                Niveau1.DefaultStyle.AppendCssText("color: #333333;padding-bottom:6px; padding-left: 0px; font-size:10px; font-family:Verdana, Arial, sans-serif; font-weight:bold");
                TraeMenu.Nodes.Add(Niveau1);
                DataSet ds1= rt.HentTraeMenuPunkterNiveau2((int)rowNiveau1["RepTraeNiveau1ID"]);
               
                foreach(DataRow rowNiveau2 in ds1.Tables["TraeMenuNiveau2"].Rows)
                {
                    TreeNode Niveau2 = new TreeNode();
                    Niveau2.DefaultStyle.AppendCssText("color: #333333;padding-bottom:6px; padding-left: 0px; font-size:10px; font-family:Verdana, Arial, sans-serif;");
                    Niveau2.Text = rowNiveau2["Titel"].ToString();
                    Niveau1.Nodes.Add(Niveau2);
                    DataSet ds2 = rt.HentTraeMenuPunkterNiveau3((int)rowNiveau2["RepTraeNiveau2ID"]);
                    foreach(DataRow rowNiveau3 in ds2.Tables["TraeMenuNiveau3"].Rows)
                    {
                        TreeNode Niveau3 = new TreeNode();
                        Niveau3.DefaultStyle.AppendCssText("color: #333333;padding-bottom:6px; padding-left: 0px; font-size:10px; font-family:Verdana, Arial, sans-serif;");
                        Niveau3.Text = rowNiveau3["Titel"].ToString();
                        Niveau3.ID = rowNiveau3["RepTraeNiveau3ID"].ToString();
                        Niveau2.Nodes.Add(Niveau3);

                    }
                }

            }
        }
        private void Page_Load(object sender, System.EventArgs e)
        {
            if(!Page.IsPostBack)
                FyldRepTrae();

            // Put user code to initialize the page here
        }
        #region Web Form Designer generated code
        override protected void OnInit(EventArgs e)
        {
            //
            // CODEGEN: This call is required by the ASP.NET Web Form Designer.
            //
            if(!Page.IsPostBack)
            {
                InitializeComponent();
                base.OnInit(e);
            }
        }
       
   
        private void InitializeComponent()
        {
            this.ID = "RepTraeMenu";
            this.Load += new System.EventHandler(this.Page_Load);

        }
        #endregion
    }
}

det er alt hvad jeg bruger af filer.
Avatar billede dr_chaos Nybegynder
01. juni 2005 - 00:03 #10
Jeg fik løst problemet.
Er dog ikke klar over hvordan .
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