2009-05-25 10 views
2

Ich muss einen Weg finden, eine vb.net-Funktion in meinem aspx-Seite von Javascript aufrufen. Ich habe eine Jquery-Funktion, die die .drop-Klasse .droppable macht, und jedes Mal, wenn ich ein .raggable-Objekt auf ein Ablageziel lösche, löst mein Jquery-Code erfolgreich eine Java-Warnmeldung aus. Alles in reinem Javascript. Was ich tun muss, ist etwas schweres Mathe!Aufruf einer VB.net-Funktion von Javascript

Ich verstehe, dass Javascript Client-Seite existiert, ASP/VB existiert Server-Seite, und nie die beiden treffen. Bei Google Research scheint es der ideale Weg zu sein, um das zu erreichen, was ich tun muss: ein asynchrones Postback in meinem Update-Panel auszulösen. Ich habe einen versteckten Button namens "HiddenButton" erstellt, und ich habe auch ein verstecktes Label namens "HiddenLabel" erstellt. Wie bekomme ich es zum Laufen, wenn ich etwas ablege, ruft mein Javascript etwas auf, das den Text in HiddenLabel aktualisiert (damit ich einen Wert an die Serverseite weitergeben kann) und irgendwie das HiddenButton_click-Ereignis auslösen?

Meine aktuelle Javascript Güte sieht wie folgt aus:

<script type="text/javascript"> 
    $(document).ready(function() { 
doReady(); 

var prm = Sys.WebForms.PageRequestManager.getInstance(); 
prm.add_endRequest(function(s, e) { 
    doReady(); 
}); 
}); 

function doReady() { 

$('.drag').draggable({ revert: true, helper: 'clone' }); 
$('.drop').droppable({ 
    tolerance: "touch", // Here should be a string 
    drop: function() { alert('dropped'); } 

Dies ist, wo ich denke, etwas gehen muss das Etikett und lösen die Post zurück zu aktualisieren, aber ich weiß nicht, was es ist :(

}); 

} // End of do ready 
</script> 
+0

Sie auch WebForm_DoPostBackWithOptions JavaScript-Funktion anstelle von __doPostBack verwenden können. – Kirtan

Antwort

3

Sie können uns Das OnValueChanged-Ereignis der ausgeblendeten Variablen. Verdrahten diesem Fall ändern Sie den Wert der verborgenen Variablen und schreiben diese Aussage -

__doPostBack('<%= hdnHidden.UniqueID %>', ''); //This statement will fire the OnValueChanged event and the control will be moved to the server side where you can update the label and do your processing. 
+0

Es hat funktioniert! Ich habe meine JavaScript-Zeile folgendermaßen aktualisiert: drop: function() {__doPostBack ('<% = HiddenButton.UniqueID%>', ''); } Jetzt muss ich nur herausfinden, wie mehr Arbeit auf meiner Website zu tun, aber das ist, was ich brauchte! –

1

mit Ihrem JS aufrufen __doPostBack verursacht eine Seite Postbacks.

function __doPostBack(eventTarget, eventArgument) { ... } 
+0

Ich habe mein Javascript geändert, und jetzt ist die Drag-Funktionalität kaputt? Funktion doReady() { $ ('. drag'). draggable ({revert: true, helfer: 'clone'}); $ ('. Drop'). Droppable ({ Toleranz: "touch", // Hier sollte eine Zeichenfolge sein drop: function() {alert ('droped');} drop: function() {__doPostBack (HiddenButton_Click, '')} }); } // Ende der Vorbereitung –

Verwandte Themen