2013-03-21 86 views
0

我在ASP.NET网站中使用Javascript。我也在代码中使用updatepanel。 我正在使用隐藏字段,它出现在updatepanel中。隐藏的字段值在UpdatePanel更新中丢失/重置

我想使用document.getelementbyID(hiddenfield);

但每次更新updatepanel时,我都会得到相同的值,如何获取更新后的值。 谢谢。

+1

可能发布一些代码或获得的jsfiddle? – faino 2013-03-21 17:11:20

+0

您是否验证过隐藏字段在服务器端更新? – 2013-03-21 17:13:33

+0

我的回应是在这篇文章的最后一句话 - 但我不完全确定写的文字意味着我认为他们的意思。发布代码并尝试更多地展开该问题。 – 2013-03-21 17:31:16

回答

0

我的第一个“预感”是服务器没有在回发中使用新值。 在每次回发中,整个内容的更新后的UpdatePanel被替换为 - 这包括上述隐藏字段。

检查Firebug(或等效)中的网络请求和/或将调试器附加到ASP.NET进程。第一步是准确确定该值何时/何时不符合预期/期望。

各种框架(例如DevExpress,也许是Telerik)都提供了足够聪明的自定义隐藏字段控件,可以在回发期间保留其数据。这样的控制对于创建或模拟来说是相对微不足道的。

一个快速的黑客攻击,跨异步坚持回发的隐藏字段是将它任何的UpdatePanel的..因人而异。

0

您必须使用ClientID property因为你的控制包含的Runat =“服务器”

0

尝试以下操作:从你的一部分

window.onload = function() { 
    document.getElementById("myButton").onclick = function() { 
     var hiddenField = document.getElementById('<%=HiddenField1.ClientID %>'); 
     alert(hiddenField.value); 
    } 
} 

这么少的代码,并且没有错误就很难说真正正在发生,它可能会有很多错误。你必须确保你在页面加载后使用document.getElementById,等等......

0

你能不能请你发布你的代码..如果你已经把你的隐藏字段放在updatepanel里面,那么在每个帖子后面都会重新初始化它的值。试着将它更新面板外...

如果希望和所有它关系到它可能解决您的错误..