我一直试图以某种方式获取我的javascript函数(我在aspx页面的head部分中)在隐藏项中设置一个值,然后一些如何拥有服务器端(可靠的'ol ASP)读取该数据,以便我可以根据它是什么来做一些工作。我将整个页面都包含在更新面板中,我的拖放问题大部分已经解决了。理想的情况是拥有它所以一旦一个对象被丢弃在drop区域,javascript代码块(我吮吸JS)将为隐藏字段赋值,然后让更新面板执行其异步回发之一并刷新自身(它将从基于隐藏值的运行的函数中提取数据)。这就是我目前(破碎)的javascript部分所拥有的:
<script type="text/javascript">
$(document).ready(function() {
doReady();
var prm = Sys.WebForms.PageRequestManager.getInstance();
prm.add_endRequest(function(s, e) {
doReady();
});
});
所有上述内容都使得JQuery在回发后不会自行解决问题
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>
这是相关的ASPX部分,它具有神秘的“myHidden”东西。
<input type="hidden" id="myHidden" />
<asp:Button ID="HiddenButton" runat="server" Text="Button" />
我在javascript部分做错了什么,或者是我对这个fubar的整个概念?
谢谢! 比尔
答案 0 :(得分:0)
如果您想要回发隐藏的输入,您需要提供名称和ID。只有带有名称的输入才会与发布的表单一起发送。您可能希望将其设置为asp:HiddenField,以便您可以在服务器端轻松检索其值,尽管您也可以从Request.Form集合中获取它。
<asp:HiddenField runat="server" id="myHidden" />
将您的javascript更改为:
drop: function() {
$('[id$="myHidden"]').val('Testy test test');
__doPostBack('<%= HiddenButton.UniqueID %>', '');
alert($('[id$="myHidden"]').val());
}