Arrays an andere ASP-Seiten übertragen
Saadat
- asp.net
0 Stefan Falz0 Uwe Nohl
Hallo,
wie kann man Arrays (ein- oder zweidimensional) an andere Seiten übergeben. Wenn ich versuche, ein Array wie eine normale Variable an die URL anzuhängen, kommt eine Fehlermeldung, daß der Datentyp unverträglich ist.
Ich freue mich für jeden kreativen Vorschlag!
Saadat
Hallo Saadat,
wie kann man Arrays (ein- oder zweidimensional) an andere Seiten
übergeben. Wenn ich versuche, ein Array wie eine normale Variable
an die URL anzuhängen, kommt eine Fehlermeldung, daß der Datentyp
unverträglich ist.
Ein Array ist auch nur eine Auflistung. Request.QueryString auch.
Daher kann man sich auf 2 Arten helfen.
<%
For intCounter = 0 To UBound(aryTest) - 1
strParams = strParams & "¶m=" & aryTest(intCounter)
Next
strURL = "index.asp?submit=True" & strParams
%>
in strURL steht dann etwa folgendes:
index.asp?submit=True¶m=1¶m=2¶m=3
Auslesen kann man das dann folgendermassen:
<%
For intCounter = 1 To Request.QueryString("param").Count
aryParams(intCounter - 1) = Request.QueryString("param")(intCounter)
Next
%>
Ohne Gewähr, da nicht getestet, aber bis auf evtl. Syntaxfehler sollte
es so laufen.
Tschau, Stefan
Hallo,
wie kann man Arrays (ein- oder zweidimensional) an andere Seiten übergeben. Wenn ich versuche, ein Array wie eine normale Variable an die URL anzuhängen, kommt eine Fehlermeldung, daß der Datentyp unverträglich ist.
Ich freue mich für jeden kreativen Vorschlag!
Saadat
Hallo Saadat,
da wohl eine direkte Übertragung eines arrays per Formular IMHO nicht geht (hätte ich auch gerne, wir sollten an MS schreiben!...) helfe ich mir mit versteckten Feldern:
<form name="formname" method="post" action="auswerten.asp">
<input type=hidden name=1dimension value=<%=Ubound(arr,1)%>>
<input type=hidden name=2dimension value=<%=Ubound(arr,2)%>>
<%
for i = 0 to Ubound(arr,2)
for j = 0 to Ubound(arr,1)
Response.Write("<input type=hidden" & "name=" & CStr(i) & CStr(j) & " value=" & arr(j,i) & ">")
next
next%>
Jetzt hast Du so was wie ein verstecktes array, welches Du in der auswerten.asp auslesen kannst (Namen auseinanderdröseln, die Performance ist aber IMHO sehr gut)
<%for i = 0 to request.form("2dimension")
for j = 0 to request.form("2dimension")%>
Aber jetzt wirds spät und der Code komplex, von da wo ich Dir schreibe, kann ich nichts testen, aber es ist so, dass ich ellenlange hidden inputs mit solchen Manövern übertragen und ausgelesen kriege.
Gruss
Uwe Nohl
<%for i = 0 to request.form("2dimension")
»» for j = 0 to request.form("2dimension")%>
Aber jetzt wirds spät und der Code komplex, von da wo ich Dir schreibe, kann ich nichts testen, aber es ist so, dass ich ellenlange hidden inputs mit solchen Manövern übertragen und ausgelesen kriege.
Hallo Saadat,
ich nochmal (kriege nichts auf Anhieb geregelt): in der letzten Zeile muss es heissen: 1dimension, und ein eineindeutiges Trennzeichen sollte noch zwischen CStr(i) un CStr(j), damit Du dröseln kannst. Ausserdem habe ich Stefan Falz übersehen, er hat Dir eine Querystring-Lösung gepostet, die Deine Zwecke vielleicht besser bedient. Bei grossen Datenmengen sind hidden inputs aber die bessere Wahl, da sie nicht so so enge Mengengrenzen an Daten haben.
So und jetzt gute Nacht
Uwe Nohl
<%for i = 0 to request.form("2dimension")
»» for j = 0 to request.form("2dimension")%>
Aber jetzt wirds spät und der Code komplex, von da wo ich Dir schreibe, kann ich nichts testen, aber es ist so, dass ich ellenlange hidden inputs mit solchen Manövern übertragen und ausgelesen kriege.
Hallo Saadat,
ich nochmal (kriege nichts auf Anhieb geregelt): in der letzten Zeile muss es heissen: 1dimension, und ein eineindeutiges Trennzeichen sollte noch zwischen CStr(i) un CStr(j), damit Du dröseln kannst. Ausserdem habe ich Stefan Falz übersehen, er hat Dir eine Querystring-Lösung gepostet, die Deine Zwecke vielleicht besser bedient. Bei grossen Datenmengen sind hidden inputs aber die bessere Wahl, da sie nicht so so enge Mengengrenzen an Daten haben.
So und jetzt gute Nacht
Uwe Nohl