1
我需要访问母版页上的多个文本框。文本框是在单独的Web控件中声明的,它不会让我调用文本框的名称,以便我可以用数据填充它们。我有多个文本框就像我说的,但例如,当我尝试写入txtName
它不会让我即使当我点击设计视图它说它在那里。访问母版页上的Web控件中的文本框
有人可以帮我吗?
我需要访问母版页上的多个文本框。文本框是在单独的Web控件中声明的,它不会让我调用文本框的名称,以便我可以用数据填充它们。我有多个文本框就像我说的,但例如,当我尝试写入txtName
它不会让我即使当我点击设计视图它说它在那里。访问母版页上的Web控件中的文本框
有人可以帮我吗?
将Web控件中的文本框作为属性公开。
在webcontrol.ascx
<asp:TextBox runat="server" id="txtName" />
在webcontrol.ascx.cs
public virtual TextBox TxtName { get {return txtName;} //note capitalization
然后做同样的事情在母版页揭露网络控制。
在masterpage.master
<uc1:MyWebControl runat="server" id="MyWebControl1" />
在mastermage.master.cs
public virtual MyWebControl myWebControl{get {return myWebControl1;}}
然后,让你的母版页强烈从内容页加入了MasterType指令类型。
Default.aspx中
<%@ MasterType TypeName="MyMasterPageClass" />
然后你可以从后面内容页面代码访问它。在default.aspx.cs
Master.myWebControl.TxtName.Text="Hello, world!";
有必要做的原因是,在的.aspx,的.ascx和的.master页面宣布控制是protected
代替public
而且也没有办法(截至目前)改变他们,我知道。所以我们可以使用属性来公开这些控件。
[如何从内容页面访问母版页控件](http://stackoverflow.com/questions/15573505/how-to-access-master-page-control-from-content-page) – Paddy
@帕迪OP解释完全相反。它不是重复的。 '“文本框是在一个单独的Web控件中声明的''。 – Bharadwaj
@Bharadwaj - 我不知道你是对的,但即便如此,这里有一个答案,显示了如何从母版页访问内容页面:http://stackoverflow.com/questions/4979669/how-to -access-content-page-controls-from-master-page-in-asp-net?rq = 1但是,我不确定这是否是真正推荐的做法。 – Paddy