Avatar billede mrpalermo Nybegynder
29. juni 2006 - 15:30 Der er 3 kommentarer og
1 løsning

DropDownList drillerier

Jeg har defineret et par dropdownlister, hvor alle sammen ser ud som denne:

<asp:DropDownList ID="drop_2_status" runat="server" DataSourceID="ObjectDataSource2" DataTextField="EntryName" DataValueField="EntryId">
    </asp:DropDownList>
<asp:ObjectDataSource ID="ObjectDataSource1" runat="server" SelectMethod="GetSuperOfficeList"
        TypeName="EdsSo">
        <SelectParameters>
            <asp:Parameter DefaultValue="35" Name="UDListDefinition_id" Type="Int32" />
        </SelectParameters>
    </asp:ObjectDataSource>

Den bliver fyldt ud som den skal. Efterfølgende vælger jeg en af værdierne som selected i min page_load ud fra en værdi i en database:

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load


        Dim EdsSo As New EdsSo
        Dim PageData As DataSet
        PageData = EdsSo.GetEdsPage2Details(Session("CID"))

        If PageData.Tables(0).Rows.Count > 0 Then


            drop_2_status.SelectedValue = PageData.Tables(0).Rows(0)("drop_2_status")

        End If

        PageData = Nothing
        EdsSo = Nothing


    End Sub


På ASP siden er der en "GEM" knap, med tilførende funktionalitet:

Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim EdsSo As New EdsSo

        Call EdsSo.UpdateEdsPage2Details(drop_2_status.SelectedItem.Value.ToString, Session("CID"))
        Response.Redirect("EDS_Page2.aspx")

    End Sub

Min spørgsmål lyder nu: Hvorfor kan jeg ikke få oplyst den rigtige SelectedItem.Value - værdi, når jeg vil gemme. Det er som om, at den er ligeglad med hvad jeg ændrer mit valg i listboksen til. Den retunerer kun den værdi som blev sat i starten : drop_2_status.SelectedValue = PageData.Tables(0).Rows(0)("drop_2_status")
tilbage til mig.

Hvis jeg fjerner "drop_2_status.SelectedValue = PageData.Tables(0).Rows(0)("drop_2_status")" linien, kan jeg godt nok få den rigtige værdi tilbage. Hvad gør jeg galt?
Avatar billede innercitydk Nybegynder
29. juni 2006 - 16:51 #1
Problemet er denne linie:

If PageData.Tables(0).Rows.Count > 0 Then
  drop_2_status.SelectedValue = PageData.Tables(0).Rows(0)("drop_2_status")

Når du poster på siden (trykker gem) køres pageload. Med den kode linie sætter du hver gang selected til drop_2_status.
Avatar billede innercitydk Nybegynder
29. juni 2006 - 16:55 #2
udvid eventuelt din if statement så den tjekker om der er tale om postback.

If PageData.Tables(0).Rows.Count > 0 And Not Page.IsPostBack Then
drop_2_status.SelectedValue = PageData.Tables(0).Rows(0)("drop_2_status")
End If
Avatar billede mrpalermo Nybegynder
29. juni 2006 - 17:24 #3
Det var det...takker. Smid et svar.
Avatar billede innercitydk Nybegynder
29. juni 2006 - 19:31 #4
Værsgo :)
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