访问母版页上Web控件中的文本框

时间:2014-05-13 12:22:49

标签: asp.net vb.net

我需要访问母版页上的多个文本框。文本框在单独的Web控件中声明,它不会让我调用文本框的名称,因此我可以使用数据填充它们。我有多个文本框,就像我说的那样,但是例如,当我尝试写入txtName时,即使我点击“设计视图”它说它存在,它也不会让我。

有人可以帮帮我吗?

1 个答案:

答案 0 :(得分:2)

将Web控件中的文本框公开为属性。

在webcontrol.ascx

<asp:TextBox runat="server" id="txtName" />

在webcontrol.ascx.cs

public virtual TextBox TxtName { get {return txtName;} //note capitalization

然后在母版页中执行相同的操作以显示Web控件。

在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,并且没有办法(截至目前)改变我所知道的那些。因此,我们可以使用属性将这些控件公开为公开。