try DataOleDB.opendb("CitoMedic") DataOleDB.DanData("SELECT * from Sprog") drpAdminredigersprog.items.clear drpAdminredigersprog.items.add(New ListItem("asdasf",nothing)) Do while DataOleDb.Data.Read() drpAdminredigersprog.items.add(New ListItem(DataOleDb.Data("Sprog"),DataOleDb.Data("sprogID"))) loop DataOleDB.closedb() catch ex as exception response.write(ex.tostring()) end try
her fylder jeg den første dropdown (den med sprog)
try DataOleDB.opendb("CitoMedic") DataOleDB.DanData("SELECT * from MENU where Sprogid = " & sprog & ";") drpAdminredigerHovedmenupunkt.items.clear drpAdminredigerHovedmenupunkt.items.add("Vælg her:") Do while DataOleDb.Data.Read() drpAdminredigerHovedmenupunkt.items.add(New ListItem(DataOleDb.Data("Navn"),DataOleDb.Data("sprogID"))) loop DataOleDB.closedb() catch ex as exception response.write(ex.tostring()) end try
her fylder jeg den næste dropdown (den med menupunkter)
try DataOleDB.opendb("CitoMedic") DataOleDB.DanData("SELECT * from SIDER where Menuid = " & menu & ";") response.write(menu & " hah") drpAdminredigerUnderside.items.clear drpAdminredigerUnderside.items.add("Vælg her:") Do while DataOleDb.Data.Read() drpAdminredigerUnderside.items.add(New ListItem(DataOleDb.Data("Navn"),DataOleDb.Data("MenuID"))) loop DataOleDB.closedb() catch ex as exception response.write(ex.tostring()) end try
her fylder jeg den sidste dropdown (den med undersider)
Hej jaffafo... kan du ikke lægge lidt kode ud der viser hvornår ovenstående bliver kaldt. Og "glemmer indholdet" - betyder det at de simpelthen bliver tomme ?
Public Class redigerunderside : Inherits usercontrol
Dim DataOleDB as new DataBaseOleDB() Protected lbladminredigerUndersideID As System.Web.UI.Webcontrols.label Protected txtadminredigerUndersideNavn As System.Web.UI.Webcontrols.textbox Protected txtadminredigerUndersideTekst As System.Web.UI.Webcontrols.textbox Protected drpAdminredigerHovedmenupunkt As System.Web.UI.Webcontrols.dropdownlist Protected drpAdminredigerUnderside As System.Web.UI.Webcontrols.dropdownlist Protected drpAdminredigersprog As System.Web.UI.Webcontrols.dropdownlist Protected lblbesked As System.Web.UI.Webcontrols.label
Public sub Page_Load(Source as Object, E as EventArgs) If not page.ispostback fyldsprogdropdown() end if end sub
Public sub valg(Source as Object, E as EventArgs) session("valg") = drpAdminredigerHovedmenupunkt.selecteditem.value 'fyldundersidedropdown() response.write(session("valg")) end sub
Public sub valgUnderside(Source as Object, E as EventArgs)
end sub
Public sub click_gem(Source as Object, E as EventArgs)
end sub
Public sub sprogvalg(Source as Object, E as EventArgs) 'response.write(drpAdminredigersprog.selecteditem.text) fyldmenupunktdropdown(drpAdminredigersprog.selecteditem.value) end sub
Public sub click_annuller(Source as Object, E as EventArgs) response.redirect(request.path & "?sid=2") end sub
function fyldundersidedropdown(menu as integer) as integer try DataOleDB.opendb("CitoMedic") DataOleDB.DanData("SELECT * from SIDER where Menuid = " & menu & ";") response.write(menu & " hah") drpAdminredigerUnderside.items.clear drpAdminredigerUnderside.items.add(New ListItem("Vælg her:",nothing)) Do while DataOleDb.Data.Read() drpAdminredigerUnderside.items.add(New ListItem(DataOleDb.Data("Navn"),DataOleDb.Data("MenuID"))) loop DataOleDB.closedb() catch ex as exception response.write(ex.tostring()) end try end function
function fyldmenupunktdropdown(sprog as integer) as integer try DataOleDB.opendb("CitoMedic") DataOleDB.DanData("SELECT * from MENU where Sprogid = " & sprog & ";") drpAdminredigerHovedmenupunkt.items.clear drpAdminredigerHovedmenupunkt.items.add(New ListItem("Vælg her:",nothing)) Do while DataOleDb.Data.Read() drpAdminredigerHovedmenupunkt.items.add(New ListItem(DataOleDb.Data("Navn"),DataOleDb.Data("sprogID"))) loop DataOleDB.closedb() catch ex as exception response.write(ex.tostring()) end try end function
function fyldsprogdropdown() as integer try DataOleDB.opendb("CitoMedic") DataOleDB.DanData("SELECT * from Sprog") drpAdminredigersprog.items.clear drpAdminredigersprog.items.add(New ListItem("Vælg her:",nothing)) Do while DataOleDb.Data.Read() drpAdminredigersprog.items.add(New ListItem(DataOleDb.Data("Sprog"),DataOleDb.Data("sprogID"))) loop DataOleDB.closedb() catch ex as exception response.write(ex.tostring()) end try end function
Nej de bliver ikke tomme, men når jeg vælger Menupunkt (dvs i den næste dropdown) kan den ikke hente data ud. Denne data skal jeg bruge for at smide data ind i den sidste dropdown. forstår du hvad jeg mener?
Hej jaffafo.... undskyld men jeg har haft lidt småtravlt.
Jeg tror du mere skal over i noget hvor du sørger for at synkronisere dine værdimængder til dine dropdowns, og så databinde når der sker en selectionchange.
hvis du har sådan en her : // værdimængden kan på det nærmeste være hvilken som helst slags liste string[] dd1Values = {"hej","med","dig"};
kan du databinde sådan her : dd1.DataSource = dd1Values; dd1.DataBind();
med dine 3 dropdowns - kunne man forestille sig noget i denne stil : (nu bruger jeg bare nogle stringarrays til værdimængderne, men det er bare for at illustrere det).
try DataOleDB.opendb("CitoMedic") DataOleDB.DanData("SELECT * from MENU where Sprogid = " & sprog & ";") drpAdminredigerHovedmenupunkt.items.clear drpAdminredigerHovedmenupunkt.items.add(New ListItem("Vælg her:",nothing)) Do while DataOleDb.Data.Read() drpAdminredigerHovedmenupunkt.items.add(New ListItem(DataOleDb.Data("Navn"),DataOleDb.Data("sprogID"))) loop DataOleDB.closedb() drpAdminredigerHovedmenupunkt.Databind() catch ex as exception response.write(ex.tostring()) end try
kan du ikke lige hjælpe mig med at "omskrive" det?.. f.eks. hvordan ville du gøre?
har du prøvet det jeg sendte dig ? ... jeg har lige kigget det igennem - det burde sådan set kunne køre (der er ingen garantier... det er bare skrevet herude).
du kan sagtens sætte datasource til en reader (jeg går ud fra at DataOleDb.Data.Read()) returnerer dig en DataReader.
Du skal så bare sørge for at sætte dd1.DataValueField = "Navn"; dd1.DataTextField = "Sprog";
På den måde kan du sådan i store træk kopiere den kode jeg sendte dig direkte.... Jeg tror det vil være det nemmeste for dig.
undskyld.... lige en fejl : DataOleDb.Data.Read() returnerer dig selvfølgelig ikke en reader, men DataOleDb.Date ser ud til at være en reader, så mon ikke du kan gøre sådan her :
System.Web.HttpException: DataBinder.Eval: 'System.Data.Common.DbDataRecord' does not contain a property with the name Navn. at System.Web.UI.DataBinder.GetPropertyValue(Object container, String propName) at System.Web.UI.DataBinder.GetPropertyValue(Object container, String propName, String format) at System.Web.UI.WebControls.ListControl.OnDataBinding(EventArgs e) at System.Web.UI.Control.DataBind() at redigerunderside.fyldsprogdropdown() in E:\Projects\Helle\admin\sider\adminredigerunderside.ascx.vb:line 97
men et nyt problem.. der mangler det ene sprog.. :(
"Dansk" mangler.. det er det første i tabellen (har ID: 1) koden er her:
function fyldsprogdropdown() as integer try DataOleDB.opendb("CitoMedic") DataOleDB.DanData("SELECT * from Sprog") drpAdminredigersprog.items.clear drpAdminredigersprog.items.add(New ListItem("Vælg her:",nothing)) if DataOleDb.Data.Read() drpAdminredigersprog.DataSource = DataOleDb.Data drpAdminredigersprog.DataValueField = "SprogID" drpAdminredigersprog.DataTextField = "Langsprog" drpAdminredigersprog.DataBind() end if DataOleDB.closedb() catch ex as exception response.write(ex.tostring()) end try end function
Ja - jeg hoppede så i æsken :o) Du kan godt tilføje linier til listerne. Du skal bare sørge for at gøre det efter du databinder (hvis du gerne vil have den i toppen kan du altid lave en drpAdminredigersprog.Items.AddAt(0, ...);
Istedet for det med trixe en ' om til &test; kan du bare sætte en ekstra ind, således at : "en go' cigar" bliver til "en go'' cigar"
Så escaper du karakteren, hvilket din insert vil acceptere, og du vi få karakteren med op når du suger i basen, så det ser rigtigt ud på skærmen. mvh
Compiler Error Message: BC30456: 'AddAt' is not a member of 'System.Web.UI.WebControls.ListItemCollection'.
Source Error:
Line 93: drpAdminredigersprog.DataTextField = "Langsprog" Line 94: drpAdminredigersprog.DataBind() Line 95: drpAdminredigersprog.Items.AddAt(0, "Vælg her:") Line 96: Line 97: DataOleDB.closedb
mange tak for de pæne ord - og en venlig hilsen herfra :o)
Synes godt om
Ny brugerNybegynder
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.