将变量值从javascript传递给ASP

时间:2009-05-29 01:15:15

标签: asp.net jquery drag-and-drop hidden

在这个社区的帮助下,我已经能够将一小段文本从javascript(clientside)传递到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 test test”分配给我的aspx页面上的隐藏字段。然后它回发到我在updatepanel中的隐形按钮。隐藏按钮的click事件触发,它会抛出一个显示隐藏元素内容的msgbox,它总是“Testy test test”。

现在,我遇到了一些问题。无论我放入dropzone,而不是将隐藏字段的值设置为静态字符串,我想将其设置为我放入dropzone的ID的ID。这是我改变的:

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

现在突然间,当我放下一些东西时,它仍然粘在掉落区域,没有掉落事件发生。我有什么打破的吗?或者我是否试图以错误的方式获取被删除元素的ID?

如果重要,这里是相关的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 个答案:

答案 0 :(得分:1)

在你的drop函数中,你没有提供任何形式参数:

drop: function() { 

应该是

drop: function(ev, ui) {

我在你的drop callback中猜测这个表达式:

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

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