Передача значения переменной из JavaScript в ASP - PullRequest
3 голосов
/ 29 мая 2009

С помощью этого сообщества я смог передать статический кусок текста из javascript (клиентская часть) в ASP 3.5 (серверная часть)! Этот кусок кода работает прекрасно:

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

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

    }


});

То, что сделано выше, - это когда элемент с классом .drop удаляется, он присваивает строку «Тест теста Testy» моему скрытому полю на моей странице aspx. Затем он выполняет обратную передачу на невидимую у меня кнопку, которая находится в панели обновления. Возникает событие щелчка скрытой кнопки, которое выдает сообщение, отображающее содержимое скрытого элемента, которое неизменно является «тестовым тестом».

Теперь вот где у меня проблемы. Что бы я ни помещал в зону сброса, вместо того, чтобы установить значение скрытого поля в статическую строку, я хочу установить в качестве идентификатора того, что было, я сбросил в зону сброса. Это то, что я изменил:

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

Теперь внезапно, когда я бросаю что-то, оно остается приклеенным к зоне падения, и событие падения не срабатывает. Я что-то сломал? Или я пытаюсь неправильно идентифицировать выпавший элемент?

Если это имеет значение, вот соответствующий материал aspx:

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

Эта кнопка обычно скрыта с помощью css, я просто оставил ее пока скрытой для тестирования.

EDIT !!!!:

Я тоже это пробовал, и это не работает (поэтому я могу исключить 'var'?)

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

1 Ответ

1 голос
/ 29 мая 2009

В вашей функции отбрасывания вы не предоставляете никаких формальных параметров:

drop: function() { 

должно быть

drop: function(ev, ui) {

Я предполагаю, что это выражение в вашем обратном вызове:

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

терпит неудачу, потому что на объект пользовательского интерфейса нельзя ссылаться в рамках функции.

...