从代码隐藏访问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; }