我有一个自定义的用户控件,名为OrderForm.ascx
。我也有一个利用.aspx
控件的OrderForm
文件。
我想从.aspx
控件访问OrderForm
文件上的控件。有没有办法做到这一点?
您可以像这样在用户控件中使用FindControl
方法:
Label label = Page.FindControl("Label1") as Label;
if (label != null)
string labelText = label.Text;
作为上述说明,取决于标签在页面中的位置,您可能需要使用递归来查找标签。
您也可以在返回Label文本的页面上创建属性:
public string LabelText
{
get { return Label1.Text; }
}
要从用户控件访问属性,这里有两个选项:
选项#1
string labelText = ((PageName)Page).LabelText;
选项#2
string labelText = Page.GetType().GetProperty("LabelText").GetValue(Page, null).ToString();
如果您有两个用户控件,即ControlA和ControlB,并且它们都注册在同一页面上,则可以轻松地从另一个页面访问另一个。只需在ControlB中创建要访问的公共属性即可,例如:
Public ReadOnly Property ControlB_DDL() As DropDownList
Get
Return Me.ddlItems
End Get
End Property
然后您可以在找到控件后在ControlA中引用该属性:
ControlB ctrlB = (ControlB)Page.FindControl("cB");
DropDownList ddl = ctrlB.ControlB_DDL;
请参阅此处以获取更多信息:http://www.dotnetcurry.com/ShowArticle.aspx?ID=155
访问.aspx中.ascx的控件。
HiddenField selectedEmailsId = performanceReportCtrl.FindControl("CONTROLID") as HiddenField;
并访问asx中aspx的控件。
HiddenField selectedEmailsId = Page.FindControl("CONTROLID") as HiddenField;