asp.net - 回发后隐藏字段值丢失

标签 asp.net javascript

我有两个隐藏控件:

<asp:HiddenField runat="server" id="pageHeader" />
<asp:HiddenField runat="server" id="pageInformation" />

我正在从母版页调用以下函数:

show_tip(this, document.getElementById('ctl00_pageInformation').value, document.getElementById('ctl00_pageHeader').value);

我在页面加载时在 .cs 页面的隐藏字段中传递值,如下所示:

 string message = Request.Form["pageInformation"];
 if (string.IsNullOrEmpty(message))
 {
      ((HiddenField)Master.FindControl("pageHeader")).Value = pageHeading;
      ((HiddenField)Master.FindControl("pageInformation")).Value = pageInformation;
 }

这工作正常,但在页面 POSTBACK 上,隐藏字段失去了它们的值(value)。如何在回发后保留值?

最佳答案

好的,这就是你要做的。

两个函数和一个隐藏字段。 JS 中的第一个函数添加了一个处理程序,该处理程序从隐藏字段中获取值并将它们存储在变量中。 JS 中的第二个函数添加了一个处理程序,该处理程序从变量中获取值并将它们放回隐藏字段中。

<script type="text/javascript">
        var txt1;
        var prm = Sys.WebForms.PageRequestManager.getInstance();
        prm.add_beginRequest(BeginRequestHandler);
        prm.add_endRequest(EndRequestHandler);

        function BeginRequestHandler(sender, args) {
            txt1 = $get('<%= hdntxt1.ClientID%>').value;
        }
        function EndRequestHandler(sender, args) {
            $get('<%= hdntxt1.ClientID%>').value = txt1;
        }
</script>
<asp:HiddenField runat="server" ID="hdntxt1" Value="" />

您实际上不需要使用隐藏字段,但是如果表单的其他部分需要获取值,那么无论回发如何,这些值都将随时派上用场!

关于asp.net - 回发后隐藏字段值丢失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1107988/

相关文章:

c# - 使我的 ASP.NET 网站与 Firefox 兼容?

javascript - JS 加载所有 html 后的事件

javascript - 围绕长轴旋转 SVG 省略号路径

javascript - 如何在javascript中动态添加asp-for

c# - 将数据存储到 SQL,编码与否?

JavaScript,Matter.js : Increase radius of circle

javascript - 使用 R Shiny 更改点击点的颜色并保持不变

javascript - 动态创建子元素时如何避免再次调用hover/mouseenter

c# - N 层存储库 POCO - 聚合?

javascript - 在 ASP.NET 用户控件中,我想向客户端公开一个方法