Fyller diverse poster i en dropdownlist belägen i en ascx. Denna ascx laddar jag sedan in en placeholder belägen på min default.aspx sida varje gång dess Page_Load körs. Det som spökar är att jag vill efter att utfört sid byte via "SelectedIndexChanged" ladda om drondownlisten men det verkar vara då som om det går tok. Jag har lite svårt att få något grepp om vad du försöker göra (visa gärna all relevant kod), men tumregeln är att ladda kontrollerna i init-eventet om man vill få något event ifrån dem default.aspxDropdownlist problem
När man väljer en post i dropdownlisten så fångar jag upp den via "SelectedIndexChanged".
Problemet är att varannan gång så svarar inte "SelectedIndexChanged" på att man väljer något i dropdownlisten.
Kort beskrivning av min ascx med dropdownlisten:
<code>
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If Not Page.IsPostBack = True Then
'Fyller myDropdown med innehåll
With myDropdown.Items
.Clear()
.Add(new ListItem("xxxxx", "001")
.Add(new ListItem("yyyyy", "002")
.Add(new ListItem("hhhhh", "003")
' osv......
End If
End Sub
Protected Sub myDropdown_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles myDropdown.SelectedIndexChanged
session("myMainPage") = myDropdown.SelectedValue
'Ladda den sida som valt värde motsvarar.... i en mainPlaceholder.
End Sub
</code>
Vad kan vara galet?Sv: Dropdownlist problem
Finns det något sett som inte bråkar när man använder
<code>
.SelectedIndex = 0
</code>Sv:Dropdownlist problem
Kanske beror problemet på i vilken ordning jag laddar ascx:erna i min defaul.aspx..?
Laddar jag menyn före mitt huvudfönster så fungerar sidväxlingarna vid varje klick.
Men det som blir knas är innehållet i textboxarna i mitt huvudfönster
1. meny (ascx)
2. huvudfönster(ascx)
Om jag laddar huvudfönstret före menyn så blir det varannan gång klick som sidbytena sker. Men texten i textboxarna är kvar efter en omladdning.
1. huvudfönster(ascx)
2. meny (ascx)
Om jag dessutom kör en response.redirect("?") så fungerar varje sidbyte med ett klick men kodmässigt sett blir det en extra omladdning.
Tips? Ideer?Sv: Dropdownlist problem
Har kört min labb fram och tillbaka .... det är en "Raise Postback Event" som inte alltid sker vid ett click.
Min ascx meny laddas i en placeholder. När jag sedan gör ett val i den dropdownlisten som är min meny så önskar jag fånga upp händelsen i "SelectedIndexChanged". Som sagt första gången går det bra och sidan laddas om via default.aspx händelsen fungerar och byter sida i en annan placeholder som är min huvudsida. Men när nu nästa val i menyn skall göras är liksom "Raise Postback Event" som bort glömd. Sidan laddas om igen som om det vore en torrladdning.
Men om jag kör en torrladdning med respnse.redirect("?") så verkar "Raise Postback Event" fungera som det ska.
När nu ett klick avfyras laddar default.aspx om sig. Först är alla placeholders tomma men fylls på med de ascx:er som som jag lagrat i sessions variabler korrekt. Därefter om nu "Raise Postback Event" önskar uppträda så utförs den kod som klicket skall utföra.
Ide?Sv:Dropdownlist problem
Sv: Dropdownlist problem
<code>
Partial Class _default
Inherits System.Web.UI.Page
Dim objPage As New pageloader
Dim objIni As New ini
Protected Sub Page_Init(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Init
Try
'Laddar alla inställningar
objIni.init_sajt(Page)
'Dela med av PAGE till klassen
objPage.Page = Page
'Läs in XML filer
objPage.readXML()
'Returnerar av query:s
objPage.queryPnr(Request.QueryString("pnr"))
'Skapa upp sajten.
objPage.loadPLHs()
Catch ex As Exception
Response.Write("Tillfälligt fel.")
End Try
End Sub
</code>
menu_dropdown.ascx
<code>
Partial Class menu_dropdown
Inherits System.Web.UI.UserControl
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If Not Page.IsPostBack = True Then
loadDropdown()
End If
End Sub
'=== Läser in data i dropdown menyn
Private Sub loadDropdown()
Dim XMLmenu As XMLconn
XMLmenu = New XMLconn
XMLmenu.readXMLfile(XMLpath & "sys.menu_dropdown.data.xml")
XMLmenu.setTable_("xload")
Dim _nr As String = ""
Dim _text As String = ""
With dropMenu.Items
.Clear()
.Add(New ListItem("Meny", 0))
Dim u As Integer
For u = 0 To XMLmenu.rowcount - 1
_nr = XMLmenu.getItem("pnr", u)
_text = XMLmenu.getItem("text", u)
.Add(New ListItem(_text, _nr))
Next
End With
End Sub
Protected Sub dropMenu_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles dropMenu.SelectedIndexChanged
Dim ddvalue As String
ddvalue = dropMenu.SelectedValue
If ddvalue <> "0" Then
Dim objPages As New pageloader
objPages.Page = Page
'Läser in XML filer
objPages.readXML()
'Lägger till, byter ut vald sida i menyn.
objPages.addPage(ddvalue)
'NÖDLÖSNING med respons.redriect .... för att händelse skall uppfattas vid varje klick
objPages.refreshPageload(ddvalue)
'Ladda om dropdownen för att första värdet skall visas
loadDropdown()
End If
End Sub
End Class
</code>