3 votes

Passage d'une valeur variable de javascript à ASP

Avec l'aide de cette communauté, j'ai pu faire passer un morceau de texte statique de javascript (côté client) à ASP 3.5 (côté serveur) ! Ce morceau de code fonctionne à merveille :

$('.drop').droppable({
    tolerance: "touch", // Here should be a string
    drop: function() {

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

    }

});

Ce qui est fait ci-dessus, c'est que lorsqu'un élément avec la classe .drop est déposé, il attribue la chaîne "Testy test test" à mon champ caché sur ma page aspx. Ensuite, il effectue un postback vers un bouton invisible qui se trouve dans un panneau de mise à jour. L'événement de clic du bouton invisible se déclenche, ce qui fait apparaître une boîte de dialogue affichant le contenu de l'élément caché, qui est invariablement "Testy test test".

Maintenant, c'est là que j'ai quelques problèmes. De tout ce que je dépose dans la zone de dépôt, au lieu de définir la valeur du champ caché à une chaîne statique, je veux la définir à l'ID de ce que j'ai déposé dans la zone de dépôt. Voici ce que j'ai changé :

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

Maintenant, tout d'un coup, lorsque je laisse tomber quelque chose, il reste collé à la zone de largage, et aucun événement de chute ne se déclenche. Ai-je cassé quelque chose ? Ou est-ce que j'essaie d'obtenir l'ID de l'élément déposé de la mauvaise façon ?

Au cas où cela aurait de l'importance, voici la page aspx concernée :

<asp:Button ID="HiddenButton" runat="server" Text="Button" />         

Ce bouton est généralement caché par css, je l'ai simplement laissé non caché pour le moment à des fins de test.

EDIT!!!! :

J'ai également essayé ceci, et cela ne fonctionne pas (je peux donc exclure le truc du 'var' ?).

var foo = $(ui.draggable).attr("id")
    $('[id$="myHidden"]').val(foo);
    __doPostBack('<%= HiddenButton.UniqueID  %>', '');
    alert($('[id$="myHidden"]').val());

1voto

karim79 Points 178055

Dans votre fonction de dépôt, vous ne fournissez aucun paramètre formel :

drop: function() { 

devrait être

drop: function(ev, ui) {

Je suppose que cette expression est dans votre rappel de dépôt :

$(ui.draggable).attr("id")

échoue car l'objet ui ne peut pas être référencé dans la portée de la fonction.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X