2009-05-27 4 views
0

J'ai essayé d'obtenir en quelque sorte ma fonction javascript (que j'ai dans la section tête de la page ASPX) pour définir une valeur dans un élément caché, puis comment le serveur -side (fidèle 'ol ASP) lire ces données afin que je puisse faire un peu de travail en fonction de ce que c'est. J'ai toute ma page enveloppée dans un panneau de mise à jour, et mes problèmes de chute ont été pour la plupart résolus. La situation idéale serait de l'avoir ainsi une fois qu'un objet est déposé dans la zone de dépôt, le morceau de code javascript (je suce à JS) assignera une valeur à un champ caché, puis le panneau de mise à jour fera un de ses publications asynchrones et se rafraîchir lui-même (qui tirera des données d'une fonction qui est exécutée en fonction de ce que la valeur cachée est). Voilà ce que j'ai pour mon courant (cassé) javascript section:Passage d'informations de JS à ASP côté serveur

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

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

Tous les trucs ci-dessus rend si JQuery ne Bork lui-même après une publication

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> 

Et voici le ASPX pertinent partie qui a ce truc mystérieux "myHidden".

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

Est-ce que je fais quelque chose de mal dans ma section javascript, ou est le concept que j'ai de cette fubar?

Merci! Bill

+0

une raison quelconque vous ne vous contentez pas d'envoyer les données dans la fonction de déposer à l'aide jQuery.post(), puis en utilisant la fonction de rappel pour faire ce que vous voulez avec ce qui est retourné à partir de votre ASP au lieu de placer la valeur dans un champ de saisie? –

+0

Il y a une raison - parce que je n'ai aucune idée de comment! Avez-vous un bon lien vers la documentation/tutoriel sur la façon de le faire, ou un extrait de code que je pourrais apprendre? Cela semble être un moyen beaucoup plus facile que je fais actuellement. –

Répondre

0

Si vous voulez que l'entrée cachée soit affichée, vous devez donner un nom ainsi qu'un identifiant. Seules les entrées avec des noms sont envoyées avec le formulaire posté. Vous voudrez peut-être en faire un asp: HiddenField afin que vous puissiez récupérer facilement sa valeur côté serveur, bien que vous puissiez également l'obtenir à partir de la collection Request.Form.

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

Changer votre javascript est:

drop: function() { 

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

} 
+0

Utilisation de l'asp: HiddenField fonctionne très bien! J'ai appris à ne pas essayer de lui donner un nom, car la pièce d'identité suffira. J'appelle une fonction (celle qui est retournée à) et j'utilise le value.tostring de MyHidden, et ça marche! Je suis tellement contente: D Toujours intéressée par cette méthode JQuery –