我有两个隐藏控件:
<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/