2009-05-27 6 views
0

Ich habe versucht, irgendwie meine Javascript-Funktion (die ich in den Kopf der aspx-Seite habe), um einen Wert in einem versteckten Element, dann einige wie der Server haben -Seite (trustey 'ol ASP) lesen Sie diese Daten, so dass ich etwas arbeiten kann, je nachdem, was es ist. Ich habe meine gesamte Seite in ein Update-Fenster eingepackt, und meine Drag 'n Drop-Probleme wurden meist gelöst. Die ideale Situation wäre, es zu haben, sobald ein Objekt in die Drop-Zone fallen gelassen wird, das JavaScript-Chunk des Codes (ich lutsche bei JS) wird einem versteckten Feld einen Wert zuweisen, dann mache das Update-Panel eines seiner asynchronen Postbacks und refresh selbst (was Daten aus einer Funktion zieht, die basierend auf dem verborgenen Wert ausgeführt wird). Dies ist, was ich für meine aktuelle haben (gebrochen) JavaScript-Bereich:Weitergabe von Informationen von JS zu ASP Server Seite

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

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

Alle hier genannten Sachen macht es so JQuery nicht bork selbst nach einer Postbacks

function doReady() { 

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

     $('#myHidden').val('Testy test test'); 
     __doPostBack('<%= HiddenButton.UniqueID %>', ''); 
     alert(#myHidden.val); 

    } 


}); 

} // End of do ready 
</script> 

Und hier ist die relevante ASPX Teil, der dieses mysteriöse "myHidden" -Ding hat.

<input type="hidden" id="myHidden" /> 
<asp:Button ID="HiddenButton" runat="server" Text="Button" /> 

Mache ich etwas falsch in meinem Javascript-Abschnitt, oder ist das ganze Konzept, das ich von diesem fubar habe?

Danke! Bill

+0

Kein Grund sind Sie nicht nur die Daten in der Drop-Funktion jQuery.post send() und dann die Callback-Funktion zu tun, was Sie wollen mit dem, was von Ihrem ASP zurückgegeben wird, anstatt den Wert in ein Eingabefeld zu legen? –

+0

Es gibt einen Grund - weil ich keine Ahnung habe wie! Haben Sie eine gute Verbindung zur Dokumentation/Anleitung dazu, oder ein Code-Snippet, von dem ich lernen könnte? Das klingt nach einem viel einfacheren Weg, den ich gerade mache. –

Antwort

0

Wenn Sie möchten, dass die versteckte Eingabe zurückgesendet wird, müssen Sie einen Namen und eine ID angeben. Nur Eingaben mit Namen werden mit dem gebuchten Formular gesendet. Vielleicht möchten Sie es zu einem asp: HiddenField machen, damit Sie seinen Wert auf der Serverseite leicht abrufen können, obwohl Sie es auch aus der Request.Form-Sammlung erhalten könnten.

<asp:HiddenField runat="server" id="myHidden" /> 

Ihr Javascript ändern zu sein:

drop: function() { 

    $('[id$="myHidden"]').val('Testy test test'); 
    __doPostBack('<%= HiddenButton.UniqueID %>', ''); 
    alert($('[id$="myHidden"]').val()); 

} 
+0

Verwenden der asp: HiddenField funktioniert großartig! Ich habe gelernt, es nicht zu versuchen und ihm einen Namen zu geben, da die ID ausreicht. Ich rufe eine Funktion (diejenige, die zurückgeschrieben wird) auf und benutze den Wert von MyHidden, und es funktioniert! Ich bin so sehr glücklich: D Immer noch an dieser JQuery-Post-Methode interessiert –

Verwandte Themen