ASP classic: Callback-Funktionen

ironmonkey2

Grünschnabel
Hallo liebe Com.,

ich bin neu hier und habe mich natuerlich angemeldet weil mir eine Frage foermlich unter den Naegeln brennt:

Wie kann ich mit ASP classic Callback-Funktionen implementieren?
So habe ich mir das gedacht:
Code:
Function cbRouterStrForm(cbFunc, Values)
        Dim result, e
            For each w in Values 
                e = cbFunc(Values) 
                result = e & ">"  '' und hänge das Resultat an die Ergebnisliste an.
            Next
    cbRouterStrForm = result
    End Function
    
Function cbResponseAlert(strMessage)
        Dim result
        result = cbResponseAlert & " Achtung CBAlert!@"
        cbResponseAlert = result
    End Function

Natuerlich gibts Probleme mit den Methodenaufrufen. Hat jemand heise Tipps zum Thema?

Viele Dank im vorraus.
 
Zuletzt bearbeitet:

Alexander Schuc

crazy-weasel
Hallo.

Code:
CallCallback GetRef("Test"), "Alex"
CallCallback GetRef("Test2"), "Alex"

function CallCallback(func, name)

	func(name)

end function

function Test(str)

	Response.Write ("Hallo " & str & ", ich bin 'Test'<br />")

end function


function Test2(str)

	Response.Write ("Hallo " & str & ", ich bin 'Test2'<br />")

end function

Das sollte dir helfen, oder?

lg, Alex
 

ironmonkey2

Grünschnabel
Das sieht gut aus vielen Dank.
Aber wie kann ich die CB richtig aufrufen?

Edit:
Code:
CallCallback GetRef("Test"), "Alex"
CallCallback GetRef("Test2"), "Alex"

Mal glatt ueberlesen. :D
Vielen Dank mir fehlt ein Stein von Herzen!
 
Zuletzt bearbeitet:

ironmonkey2

Grünschnabel
Tjo nun will ich aber eine Collection uebergeben und die auswerten..

wie ruf ich da auf *gruebel*

Edit: Aufruf berichtigt tut was es soll :D

Callback in Include:

Code:
<%
    Function cbRouterStrForm(cbFunc, Values)
        Dim result, e, w
            For Each w in Values  
               e = e & cbFunc (Values.Item(w)) & ">" 
            Next
    result = e
    cbRouterStrForm = result
    End Function
    
    Function cbResponseAlert(strMessage)
        Dim result
        result ="Etwas tun" & strMessage
        cbResponseAlert = result
    End Function
%>

Seitenaufruf:

Code:
...
Set dicTest = Server.CreateObject("Scripting.Dictionary")
dicTest.Add 0,"1"
dicTest.Add 1,"2"
toDo = cbRouterStrForm (GetRef("cbResponseAlert"),dicTest)
...
 
Zuletzt bearbeitet:

Alexander Schuc

crazy-weasel
Im vorherigen Beispiel hab ich ja eh auch einen Parameter übergeben. ("Alex") - was für ein Parameter das ist, ist ja egal.

Code:
function AFunctionWithParams(a, b, c, d)
 ' do something..
end function

function Bla

  Dim callback = GetRef("AFunctionWithParams")

  callback(a, b, c, d) ' aufruf von AFunctionWithParams

end function

Wennst noch Probleme hast, zeig mal n bissl Code von dir. :)
 

ironmonkey2

Grünschnabel
Hmm ich hab eigntlich nicht viel geaendert und nun wird bemaengelt das ich mit GetRef nicht aufrufen kann code ist aber wie oben (ging schon).

Edit: Gut gut Funktionsnamen sollten auch gleich sein :D
 
Zuletzt bearbeitet: