0

我在 ASP.NET 网站中使用 Javascript。我也在代码中使用更新面板。我正在使用更新面板中存在的隐藏字段。

我想使用 document.getelementbyID(hiddenfield);

但是每次我更新更新面板时,我都会得到相同的值,我怎样才能得到更新的值。谢谢你。

4

4 回答 4

0

我的第一个“预感”是服务器没有在回发时使用新值。在每次回发时,更新的 UpdatePanel的全部内容都会被替换- 这包括前面提到的隐藏字段。

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

各种框架(例如 DevExpress,也许是 Telerik)提供了自定义的隐藏字段控件,这些控件足够智能,可以在回发中保留其数据。这样的控件创建或模拟相对简单。

在异步回发中保留隐藏字段的一种快速技巧是将其移到任何 UpdatePanel .. YMMV之外

于 2013-03-21T17:17:11.210 回答
0

您必须使用ClientID property,因为您的控件包含 runat="server"

于 2013-03-21T17:17:24.067 回答
0

尝试以下操作:

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

由于您的代码如此之少,而且没有错误,很难判断到底发生了什么,它可能有很多问题。您必须确保document.getElementById在页面加载后使用,等等...

于 2013-03-21T17:18:24.493 回答
0

您能否发布您的代码..如果您已将隐藏字段放在更新面板中,那么在每次回帖时,它的值都会重新初始化。尝试将其放在更新面板之外...

希望这可以解决您的错误,如果它与它相关..

于 2013-03-21T17:33:44.427 回答