Andy_KMedlem sedan juli 200330 inlägg Sitter med ett litet problem med två dropdownlistor. Valet i den första dropdownen generar alternativ i den andra dropdownen, detta fungerar utan problem.
Problemet är när man ska skicka formuläret med en submit-knapp, då får jag endast med rätt värde från den första dropdownen, värdet i den andra dropdownen "nollställs" d.v.s. den får de första värdet i listan.
Jag antar att det är något postback-problem, men jag kan inte använda mig av if Not page.ispostback eftersom detta gör att den första dropdownen inte kan databinda den andra.
Lite krångligt att förklara :e så jag skickar med koden för den andra dropdownen...
Private Sub Categories_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Categories.SelectedIndexChanged
'
' ------ Datafyller dropdownmeny2 för val av UNDERKATEGORI ----------
'
Dim dtrSubCategorys As OleDbDataReader
Dim strSQL As String
Dim i As New SQLConn()
Try
strSQL = "SELECT subCategoryName, subCategoryId FROM subCategorys WHERE categoryId = " & Categories.SelectedIndex
i.DBOpen()
Dim dropdown2 As OleDbDataReader = i.returnDataReader(strSQL)
SubCategories.DataSource = dropdown2
SubCategories.DataTextField = "subCategoryName"
SubCategories.DataValueField = "subCategoryId"
SubCategories.DataBind()
SubCategories.Items.Insert(0, New ListItem("-Underkategori-", -1))
SubCategories.Visible = True
Finally
i.DBClose()
End Try
End Sub
renholmMedlem sedan apr. 20012 266 inlägg Kan du skicka hela koden, dvs page_load osv.
Andy_KMedlem sedan juli 200330 inlägg Här kommer koden.
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'
' ------ Datafyller dropdownmeny1 för val av KATEGORI ----------
'
Dim dtrCategories As OleDbDataReader
Dim strSQL As String
Dim i As New SQLConn()
Try
strSQL = "SELECT categoryName, categoryId FROM categorys"
i.DBOpen()
Dim dropdown1 As OleDbDataReader = i.returnDataReader(strSQL)
Categories.DataSource = dropdown1
Categories.DataTextField = "categoryName"
Categories.DataValueField = "categoryId"
Categories.DataBind()
Categories.Items.Insert(0, New ListItem("-Kategori-", -1))
Finally
i.DBClose()
End Try
Dim dtrAdTypes As OleDbDataReader
Try
strSQL = "SELECT name, typeId FROM markettypes"
i.DBOpen()
dtrAdTypes = i.returnDataReader(strSQL)
AdType.DataSource = dtrAdTypes
AdType.DataTextField = "name"
AdType.DataValueField = "typeId"
AdType.DataBind()
Finally
i.DBClose()
End Try
End Sub
DinoMedlem sedan sep. 20011 914 inlägg Koden för submitknappen är nog nödvändig att du visar oxå.
Välkommen till webForum. :)
Andy_KMedlem sedan juli 200330 inlägg Ok, får skylla på min dumma kompis som sa att de inte skulle behövas :e
Och tack för välkommnandet :birp
Private Sub btnSend_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSend.Click
Dim strSQL As String
strSQL = "INSERT INTO products (customerId, typeId, subCategoryId, title, description, url) VALUES " & _
"(1, " & CInt(AdType.SelectedIndex) & ", " & SubCategories.SelectedItem.Value & ",'" & adTitle.Text & "' ,'" & adBody.Text & "' ,'" & adUrl.Text & "')"
Response.Write(strSQL)
Response.End()
End Sub
DinoMedlem sedan sep. 20011 914 inlägg Gjorde detta och då får jag fram värderna utan problem.
[b]I .aspx[/b]
<asp:DropDownList ID="Categories" AutoPostBack="true" OnSelectedIndexChanged="Categories_SelectedIndexChanged" Runat="server"/>
<asp:DropDownList ID="SubCategories" Runat="server"/>
<asp:Button ID="btnSend" OnClick="btnSend_Click" Text="Ta fram" Runat="server" />
-----------------------
[b]I code-behind[/b]
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
if not ispostback then
binddata()
end if
end sub
sub binddata()
'fyll första dropdownen
end sub
Private Sub Categories_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Categories.SelectedIndexChanged
'fyll andra dropdownen
end sub
Private Sub btnSend_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSend.Click
Response.Write("<li>" + Categories.SelectedIndex)
Response.Write("<li>" + SubCategories.SelectedItem.Value)
end sub
Andy_KMedlem sedan juli 200330 inlägg Tack, nu funkar de iaf! :)