【发布时间】:2009-09-17 12:25:16
【问题描述】:
我在 Stack Overflow 上查看过类似的问题,但无法找到解决这个特定问题的方法。我有一个简单的(不是真的,但我们假装)ASP.NET 页面,里面有一个更新面板。
在这个更新面板中有一个 HiddenField 控件,其值将通过我自己的自定义 JavaScript 设置/更新。正如我使用 Firebug 在 DOM 中看到的那样,值 is 已更新。
在这个HiddenField 旁边有一个LinkButton,它调用JavaScript 来使用OnClientClick 修改HiddenField 的值(这个工作)。 LinkButton 也有一个 OnClick 处理程序,它在值被修改后执行。
但是,在 OnClick 处理程序中,我得到了 HiddenField 的初始值,而不是 JavaScript 设置的值!
这是为什么?这是“PEBKAC”的情况吗?
编辑: 用TextBox 尝试了同样的事情,但没有成功。还尝试在提交表单之前使用 Firebug 手动修改值,但没有任何成功。
编辑 2: 我刚刚意识到 Page_Load 在 OnClick 处理程序之前被调用,这把事情搞砸了。我不会删除这个问题,因为其他人可能有同样的问题,并且可能会觉得这个问题很有价值。
【问题讨论】:
-
也许一些代码可以帮助我们深入了解这个问题。我已经做了一些测试,我可以使用“OnClientClick”设置隐藏字段的值,然后在服务器上的“OnClick”事件处理程序中检索它。
-
我发现我的代码存在问题并更新了问题以表明这一点。
标签: asp.net javascript viewstate hidden-field