从代码隐藏访问Masterpage上的隐藏字段的值

在我之前的问题的后续跟进中,我想从子页面代码隐藏中获取隐藏输入字段的值。

我试过HtmlInputHidden hdnID = (HtmlInputHidden)Page.Master.FindControl("ctl00_hdnField"); 但我得到一个“空”值。

在此处输入图像描述

Masterpage的片段是:

            
...... ...... ......
.... .... ....
.... .... ....

在我的Child aspx页面上,我有这个javascript块:

 window.onload = function() { var newDate = new Date(); var hidField = document.getElementById("ctl00_hdnField"); if (hidField != null) hidField.value = newDate.toLocaleString(); } 

当我“添加观察”时

的document.getElementById( “ctl00_hdnField”)

价值是正确的。

问题:如何从代码隐藏中访问hdnField控件中的值?

所以改变它

HtmlInputHidden hdnID = (HtmlInputHidden)Page.Master.FindControl("ctl00_hdnField");

HiddenField hdnID = (HiddenField)Page.Master.FindControl("hdnField");

这只是一个铸造的东西 – 注意HtmlInputHidden改为HiddenField 。 您也不需要ct100_部分 – 这只是HTML呈现元素具有唯一ID。

页面上的控件是一个asp.net控件,而不是一般的HTML控件。

如果在HTML中放置generics ,则可以使用HtmlInputHidden

您应该在Masterpage中创建一个包装HiddenField的属性。

 public String HdnFieldValue { get { return hidField.Value; } set { hidField.Value = value; } } 

在后面的页面代码中,您可以像这样访问它:

 ((YourCustomMaster)Page.Master).HdnFieldValue 

如果问题不明确请问我。

我认为您不需要使用ctl00_为隐藏字段的ID添加ctl00_ ,只需使用普通ID:

 (HtmlInputHidden)Page.Master.FindControl("hdnField"); 

使用类似的东西:

 if (Page.Master.FindControl("hdnField") != null) { String myValue = (HtmlInputHidden)Page.Master.FindControl("hdnField").value; }