Avatar billede meganight Nybegynder
29. april 2009 - 14:34 Der er 10 kommentarer og
1 løsning

DropDownList aktiver næste DropDownList.

Hej jeg står med et mere eller mindre irreterende problem..
Jeg har søgt nettet igennem for en løsning, men det gav ikke megen hjælp..

Jeg har en DropDownList der bliver fyldt med nogle valgmuligheder når den køre Page.Load selfølelig i en if (!IsPostBack), men hvis jeg køre med AutoPostBack på listen resetter den hele tiden tilbage så jeg for min Første valgmuliged og ikke den jeg valgte..

Køre jeg uden sker der intet..
Og på intet som helst tidspunkt køre den SelectedIndexChanged eventet..

Min Kode: C#
protected void Page_Load(object sender, EventArgs e)
    {
        if (Page.IsPostBack)
        {
            Response.Write("You have selected " + dropDownUddan.SelectedItem.ToString());
        }

        if (!IsPostBack)
        {
            sqlClass.sqlSog("SELECT DVH_UDDANNELSE " +
        "FROM TUD_DVH_UDDANNELSE " +
        "WHERE DVH_UDDANNELSE='Bachelor i teknisk videnskab' or " +
        "DVH_UDDANNELSE='Diplomingeniør' or DVH_UDDANNELSE='Kandidatuddannelse'");
            while (sqlClass.myReader.Read())
            {
                dropDownUddan.Items.Add(new ListItem(sqlClass.myReader["DVH_UDDANNELSE"].ToString(), "0"));
            }

            sqlClass.conn.Close();
            sqlClass.conn.Dispose();
        }
     
    }
    protected void dropDownUddan_SelectedIndexChanged(object sender, EventArgs e)
    {

        if (dropDownUddan.SelectedItem.ToString() == "Kandidatuddannelse")
        {
            dropDownUnderValg.Items.Add(new ListItem("Valg Mulighed", "0"));
        } 
 
    }

ASP.Net Code: Minus AutoPostBack.
<asp:DropDownList ID="dropDownUddan" runat="server"                            onselectedindexchanged="dropDownUddan_SelectedIndexChanged"
EnableViewState="True">
</asp:DropDownList>
Avatar billede saudoo Nybegynder
29. april 2009 - 15:50 #1
Prøv at sæt attributten AutoPostBack til true på din dropdownlist
Avatar billede saudoo Nybegynder
29. april 2009 - 15:51 #2
Hah.. Jeg læste helt forkert! Sorry! :)
Avatar billede saudoo Nybegynder
29. april 2009 - 15:54 #3
Har du haft kig på dette?
http://www.asp.net/learn/ajax-videos/video-77.aspx

Det kan være du finder det lettest at arbejde med. Det er en extender til Ajax.Net framworket. Hvis du også bruger ScritManageren fra Ajax.Net toolkittet, kan du definere hvilke dele af ajax framworket du vil have med. På den måde undgår du at brugeren skal bruge 4-500 millisekunder, yderligere, på at loade js-kode.
Avatar billede meganight Nybegynder
30. april 2009 - 13:53 #4
Det så meget brugbart ud, men det var desværre ikke noget jeg rigtig kan bruge i denne sammenhægn..
Jeg har forsøgt mig med nogle ScripManagers, men selvom det ser ud til den ikke resetter listen, hopper den stadig op på den første valgmulighed hver gang den køre SelectedIndexChange...

Jeg er ved at rive håret af migselv..
Avatar billede keysersoze Guru
30. april 2009 - 18:15 #5
kan du forklare nærmere - cascadingdropdownextender gør at du ikke skal køre postback fra dropdown1 -> dropdown2 og så er der hverken selectedindexchanged, page_load eller noget indblandet?
Avatar billede meganight Nybegynder
01. maj 2009 - 10:09 #6
Den der Cascading køre vist også et Postback, bare på server siden uden brugeren lægger mærke til det..

Anyways jeg fik endelig fixet problemmet med en Ajax Scripmanager og nogle updatingpanels som var 500% Mindre forvirdernde..
Avatar billede saudoo Nybegynder
01. maj 2009 - 11:56 #7
Det kan godt være det er mindre forvirrende. Men tilgengæld bliver alt for megen data jo genindlæst hver gang du lavet et postback i et updatepanel.

Så vidt jeg husker er det stort set hele siden der bliver genindlæst med ajax.net hvorfra de enkelt elementer du vil have opdateret bliver "puttet" ind på siden.

Hvis du har en nogenlunder stor side med mange brugere, er det altså ikke en holdbar løsning.
Avatar billede meganight Nybegynder
02. maj 2009 - 13:30 #8
Det er heldigvis ikke en side der vil blive besøgt af mere end 50 af gangen..
Det ville nok være en meget god dag.
Avatar billede saudoo Nybegynder
02. maj 2009 - 13:46 #9
Hehe.. det er meget godt! :P Hvis det nu skulle forekomme at du ville bruge noget ala. samme metode på andre sider, som er lidt større, kan du overveje om du skulle bruge noget andet end ajax.net.

Der er en gut der har skrevet nogle gode tutorials om hvordan man bruger jQuerys ajax-metode med Asp.NET:
http://naspinski.net/post/REAL-AJAX-with-AspNet-(not-AspNet-AJAX).aspx
Avatar billede keysersoze Guru
02. maj 2009 - 13:48 #10
eller kigge lidt på ispostback/iscallback eller lignende så der ingenting sker i pageload ved sådanne tilfælde
Avatar billede meganight Nybegynder
02. maj 2009 - 16:21 #11
#10..
Hvis du lægger mærke til den kode jeg skrev i starten, bruger jeg stadig ispostback, det virkede desværre ikke i dette tilfælde..

En af grundende var også at jeg bindede Oracle dataen forkert med min DropDown list..

Men mon ikke jeg vender tilbage til emnet og for læst op på det.
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