无法从服务器端读取隐藏字段值

Unable to read hidden field value from server side

本文关键字:隐藏 字段 读取 服务器端      更新时间:2023-09-26

我有一个aspx页面(默认.aspx),我在其中加载了一个用户控件(tree.ascx)。

在 tree.ascx 中有一个隐藏字段。

<asp:HiddenField ID="HiddenField1" runat="server"/>

我正在使用javascript为隐藏字段分配一个值。

document.getElementById('<%=HiddenField1.ClientID%>').value = "some text here";
alert(document.getElementById('<%=HiddenField1.ClientID%>').value);
document.getElementById('form1').submit(); 

警报显示的值绝对正常。 这意味着该值被正确插入到隐藏字段中。

但是当我回发到服务器并检查值时,它始终为 null。

protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            // do something.
        }
        else
        {                
            string str = this.HiddenField1.Value;              
        }
    }

我的代码总是在这里得到一个空字符串。 不知何故,回发正在擦除隐藏字段中的值。

可能是什么原因?

尝试使用以下语法。即使在回发后,它也对我有用。

ASPX 代码

<asp:HiddenField runat="server" ID="aspHiddenField" />
<input type="hidden" id="inputHidden" value='<%= aspHiddenField.ClientID %>' />

JavaScript 代码

var inputHidden = document.getElementById('inputHidden');
$("#" + inputHidden.value).val("some text");

代码隐藏

if (!string.IsNullOrEmpty(aspHiddenField.Value))
 {
//Your code goes here
}

检查您的控件是否在母版页中,如果是,那么您需要像这样访问它,第一个母版页->在母版页中查找控件的值,它将正常工作。

将隐藏字段放在更新面板中,例如:

<asp:UpdatePanel ID="UpnlHidden" runat="server">
<ContentTemplate>
<asp:HiddenField ID="HiddenField1" runat="server"/>
</ContentTemplate>
</asp:UpdatePanel>

这将为你工作:-)