Dynamisk listruta för dina program
Förord
Det finns många varianter att presentera data från en databas och visa dessa i en listruta. Det kanske inte är så svårt men om du även vill välja vilket alternativt som skall vara förvalt vid en omladdning av sidan, då kanske du måste skriva lite mer programkod.Innehåll
»»
»
»
Förord
Detta är en rutin som jag själv använder väldigt ofta på de flesta hemsidor jag bygger och de fungerar alltid lika bra så jag tänkte berätta hur jag gör. Först tänkte jag presentera den kod som jag lägger i en includefil och inkluderar varje gång på den eller de sidor jag behöver funktionen till.
' Används för att bygga en sträng med värden från en listbox.
'
' spName - namnet på sp'n som hämtar posterna
' FieldForId - nummer på det fältnamn som är id
' FieldCompare - det värdet som FieldForId skall jämföras med
' för att kunna sätta en post selected
' FieldOutPut - nummer på det fältnamn som skall visa text
Public Function spListBox(spName, _
FieldForId, _
FieldCompare, _
FieldOutput1, _
FieldOutput2)
Dim adoConn, adoRecordset
Dim lstListBox,selected
Dim selOk
Dim strOutPut
Set adoConn = Server.CreateObject("adodb.connection")
adoConn.Open application("DSN")
Set adoRecordset = adoConn.Execute(spName)
Do While Not adoRecordset.EOF
If selOk = 0 Then ' besparar oss namnslagning i databasen på resterande fält
' när vi väl hittat vår post som skall vara markerad
' om inte null
If not isnull(adoRecordset(FieldForId)) and not isnull(FieldCompare) then
If Cstr(adoRecordset(FieldForId)) = Cstr(FieldCompare) Then
selected = "selected"
selOk = 1
End If
Else
' ' null
End if
Else
selected = ""
End If
If IsNumeric(FieldOutput2) = False Then ' ett andra värde är inte medskickat
strOutPut = adoRecordset(FieldOutput1)
Else ' vi har två värden som skall ut
strOutPut = adoRecordset(FieldOutput1) & " " & adoRecordset(FieldOutput2)
End If
spListBox = spListBox & "" & vbCrLf
adoRecordset.MoveNext
Loop
' stänger
Set adoRecordset = Nothing
Set adoConn = Nothing
Exit Function
End Function
Om du inte vet hur man skriver en include-sats på en asp-sida så kan jag visa det lite snabbt. Vi säger att vi har en sida som heter rutiner.asp och ligger i katalogen /include. Sen har vi en annan asp-sida och den vill vi använda rutinen i. Då skriver du enligt följande:
David Johansson
Jag tycker det skulle vara bra med en exempelsida som visar hur sidan funkar. Annars är den mycket bra.