3

我有一个 aspx 页面 (default.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(); 

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

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

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

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

可能是什么原因?

4

3 回答 3

1

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

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
}
于 2012-05-08T07:24:22.573 回答
0

检查您的控件是否在母版页内,如果是,那么您需要像那样访问它,第一个母版页->在母版页内查找控件的值,它肯定会工作。

于 2012-05-08T07:43:04.000 回答
0

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

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

这对你有用:-)

于 2012-05-08T07:56:40.673 回答