关于asp.net:将变量值从javascript传递到ASP

Passing a variable value from javascript to ASP

在这个社区的帮助下,我已经能够将静态文本块从javascript(客户端)传递到ASP 3.5(服务器端)!这段代码很漂亮:

1
2
3
4
5
6
7
8
9
10
11
12
$('.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类的元素时,它将为aspx页面上的隐藏字段分配字符串" Testy test test"。然后,它会将我的不可见按钮回发到updatepanel中。触发隐藏按钮的click事件,这将引发一个msgbox,该消息框将显示隐藏元素的内容,这些内容始终是" Testy test test"。

现在这是我遇到一些问题的地方。在我放入dropzone的任何内容中,与其将隐藏字段的值设置为静态字符串,不如将其设置为我放入dropzone的任何内容的ID。这就是我所做的更改:

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

现在突然之间,当我放下某些东西时,它会一直粘在放置区上,并且不会发生任何放置事件。我有事吗还是我尝试以错误的方式获取放置的元素的ID?

如果有关系的话,以下是相关的aspx页面内容:

1
 

该按钮通常是通过CSS隐藏的,出于测试目的,我现在暂时不隐藏它。

编辑!!!:

我也尝试过此方法,但它不起作用(因此我可以排除'var'的东西?)

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

在drop函数中,您没有提供任何正式参数:

1
drop: function() {

应为

1
drop: function(ev, ui) {

我在您的drop回调中猜测了这个表达式:

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

失败,因为无法在函数范围内引用ui对象。