如何在母版页中获取隐藏字段控件并设置其值
本文关键字:控件 设置 字段 隐藏 母版页 获取 | 更新日期: 2023-09-27 18:32:22
我有一个包含隐藏字段控件的MasterPage
。我想获取隐藏字段的当前值,并从使用该MasterPage
的页面中设置它的值。
到目前为止,我有以下代码:(在其中一个页面中)
//Get the textbox and set it's value
TextBox txt1 = new TextBox();
txt1 = (TextBox)this.Master.FindControl("txtHiddenField");
txt1 .Text = "true";
上面的代码似乎不起作用。我需要什么代码来获取隐藏字段控件并设置其值?(并获取它的价值)
我建议在你的MasterPage
中提供一个公共属性/方法,你可以用它来设置/获取HiddenField的值。
在你的主(假设它的类型被称为SiteMaster
):
public String HiddenValue {
get{return txtHiddenField.Value;}
set{txtHiddenField.Value = value;}
}
在您的页面中:
SiteMaster master = (SiteMaster)Page.Master;
master.HiddenValue = "true";
这种方法简单明了,不易出错,易于阅读。您甚至可以更改主控形状中的控件,而无需更改页面(例如,如果要将隐藏字段替换为文本框)。
假设您的"true"
值指示您实际上想要存储布尔值,我建议使用 bool
作为属性的数据类型和一个不言自明的名称。然后你可以把它存储在隐藏的字段中,但客户端(页面)不需要知道。
HiddenField 将其文本设置为 VALUE,而 TextBox 具有 TEXT 属性。当然,将一个转换为另一个并设置文本属性将无济于事。
请改为执行以下操作:
HiddenField hiddenField = (HiddenField)Master.FindControl("txtHiddenField");
hiddenField.Value = "true";
假设您添加了这样的隐藏字段控件 ->>
<input type="hidden" ID="hiddenFieldID" runat="server" />
您可以像 -->> 一样访问它
HtmlInputHidden hiddenfield = (HtmlInputHidden)this.Master.FindControl(
可能是你错过了ContentPlaceHolder
尝试这样的事情
ContentPlaceHolder mpContentPlaceHolder;
TextBox mpTextBox;
mpContentPlaceHolder =
(ContentPlaceHolder)Master.FindControl("ContentPlaceHolder1");
if(mpContentPlaceHolder != null)
{
mpTextBox =
(TextBox) mpContentPlaceHolder.FindControl("TextBox1");
if(mpTextBox != null)
{
mpTextBox.Text = "TextBox found!";
}
}
阅读有关母版页内容 ASP.NET 引用的详细信息