Asp.net 回发后,隐藏字段值丢失

Asp.net 回发后,隐藏字段值丢失,asp.net,javascript,Asp.net,Javascript,我有两个隐藏控件: <asp:HiddenField runat="server" id="pageHeader" /> <asp:HiddenField runat="server" id="pageInformation" /> 我在页面加载的.cs页面的隐藏字段中传递值,如下所示: string message = Request.Form["pageInformation"]; if (string.IsNullOrEmpty(message)) {

我有两个隐藏控件:

<asp:HiddenField runat="server" id="pageHeader" />
<asp:HiddenField runat="server" id="pageInformation" />
我在页面加载的.cs页面的隐藏字段中传递值,如下所示:

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

这可以正常工作,但在页面回发上,隐藏字段将失去其价值。回发后如何保留这些值?

好的,这就是您要做的

两个函数和一个隐藏字段。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="" />

var-txt1;
var prm=Sys.WebForms.PageRequestManager.getInstance();
prm.add_beginRequest(BeginRequestHandler);
prm.add_endRequest(EndRequestHandler);
函数BeginRequestHandler(发送方,参数){
txt1=$get(“”).value;
}
函数EndRequestHandler(发送方,参数){
$get(“”).value=txt1;
}

实际上,您不需要使用隐藏字段,但是如果表单的其他部分需要获取这些值,那么无论回发如何,这些值在任何时候都很方便

我猜您的隐藏字段值在回邮时被重置。 如果阻止回发,请尝试将代码保存在内部

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

}

您是否为页面回发上的隐藏字段赋值?请仔细查看您的代码,如果可能的话,将其发布到这里。不,我没有在回发时做任何事情,我已经粘贴了代码。请查看以下两个链接,您可以从其中一个中找到解决方案:-让我知道您的结果。只需使用
标签
控件并设置
可见=假
Hidden
字段不是这样使用的。类似的问题有很好的答案:
if(!ispostback)
{
 string message = Request.Form["pageInformation"];
 if (string.IsNullOrEmpty(message))
 {
  ((HiddenField)Master.FindControl("pageHeader")).Value = pageHeading;
  ((HiddenField)Master.FindControl("pageInformation")).Value = pageInformation;
 }

}