Brauche Hilfe zu Dynamischem Suchformular mit Werten aus DB
Fossi
- asp.net
0 Stefan Falz0 Fossi
Hallo erstmal!
Habe da ein Problem mit meinem Suchformular
Und zwar habe ich ein Formular mit ungefähr 20 Auswahllisten, 25 Checkboxen und 5 Radio-Buttons mit denen eine DB durchsucht werden kann, also ziemlich umfangreich.
Jetzt wird nach Auswahl des ersten und wichtigsten Auswahlfeldes mit onchange das Formular an das serverseitige Script übergeben und die
2 Auswahlliste mit Einträgen aus der DB aufgefüllt und an den Client zurückgegeben.
Jetzt mein Problem:
Wie bekomme ich es hin daß die Werte die vor dem senden des Formulars ausgewählt oder angeklickt waren wieder genauso angeklickt sind nachdem die 2 Auswahlliste aufgefüllt wurde und an den Client gesendet wurde.
Ich habe schon versucht das komplette Formular einfach nochmal dynamisch zu erstellen(obwohl eigentlich nur 1 Auswahlliste erweitert werden müßte) also alle Inhalte der Formularelemente aus der DB zu lesen un dann abzufragen welche werte aus dem Formular kommen und bei Übereinstimmung diese zu selektieren(<option selected> etc..).Das hat auch funktioniert aber es hat so lange gebraucht daß ich unbedingt eine andere Lösung brauche.
Über ein paae sinnvolle Vorschläge würde ich mich sehr freuen.
Schon mal danke im voraus.
FOSSI
Jetzt mein Problem:
Wie bekomme ich es hin daß die Werte die vor dem senden des Formulars ausgewählt oder angeklickt waren wieder genauso angeklickt sind nachdem die 2 Auswahlliste aufgefüllt wurde und an den Client gesendet wurde.Ich habe schon versucht das komplette Formular einfach nochmal dynamisch zu erstellen(obwohl eigentlich nur 1 Auswahlliste erweitert werden müßte) also alle Inhalte der Formularelemente aus der DB zu lesen un dann abzufragen welche werte aus dem Formular kommen und bei Übereinstimmung diese zu selektieren(<option selected> etc..).Das hat auch funktioniert aber es hat so lange gebraucht daß ich unbedingt eine andere Lösung brauche.
Hallo,
also der Weg, den du eingeschlagen hast, ist eigentlich der richtige.
Da du sagst, das alles etwas lange dauert, gehe ich eher davon aus,
daß der ASP-Code optimiert werden sollte. Hierfür wäre ein Ausschnitt
aus deinem Code sehr hilfreich.
Eine andere Möglichkeit ist, die Listboxen in einer Include-Datei zuerstellen,
und die Inhalte dann mit dem gesendeten Wert zu vergleichen, ohne
die Listbox selbst aus der Datenbank zu generieren. Ist aber nicht so
toll.
<!--#include file="select1.inc" //-->
Inhalt der Datei select1.inc
' ------------------------------------------------------------------
<select name="Liste1">
<option <% If Request("Liste1") = "Option1" Then %>selected<% End if %> value="Option1">Option1
<option <% If Request("Liste1") = "Option2" Then %>selected<% End if %> value="Option2">Option2
...
</select>
' ------------------------------------------------------------------
Eine andere Möglichkeit wäre, die Listenelemente in einem Array zu deklarieren
und die Listbox dann in einer Schleife zu erstellen und auf den übergebenen Wert zu prüfen.
<%
Dim aryList1(10)
aryList(0) = "Option1"
aryList(1) = "Option2"
...
Response.Write "<select name=""Liste1"">"
For intCounter = LBound(aryList1) To UBound(aryList1)
If Request("Liste1") = aryList1(intCounter) Then
strSelected = " selected"
Else
strSelected = ""
End if
Response.Write "<option " & strSelected & " value=""" & aryList1(intCounter) & """>" & aryList1(intCounter)
Next
Response.Write "</select>"
%>
Ich hoffe, dir damit geholfen zu haben.
Tschau, Stefan
Danke erstmal für deine Vorschläge, haben mir in meinem Denkprozess auf jeden fall geholfen.
Ich habe mein Skript nochmal überarbeitet und es jetzt doch komplett über die DB aufgebaut, und siehe da es klappt. Auch im Hinblick auf Geschwindigkeit mehr als zufriedenstellend.
Also nochmal danke für die kompetente Antwort.
Bis zum nächsten Problem (ist schon in Sicht!!!)
Fossi