我有一个名为OrderForm.ascx
的自定义用户控件。我还有一个使用.aspx
控件的OrderForm
文件。
我想从.aspx
控件访问OrderForm
文件的控件。有没有办法做到这一点?
答案 0 :(得分:0)
如果您有两个用户控件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
答案 1 :(得分:0)
您可以在用户控件中使用FindControl
方法,如下所示:
Label label = Page.FindControl("Label1") as Label;
if (label != null)
string labelText = label.Text;
作为上述注释,根据Label在页面中的位置,您可能需要使用递归来查找Label。
您还可以在页面上创建一个返回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();
答案 2 :(得分:0)
访问.aspx中.ascx的控件。
HiddenField selectedEmailsId = performanceReportCtrl.FindControl("CONTROLID") as HiddenField;
并访问ascx中的aspx控件。
HiddenField selectedEmailsId = Page.FindControl("CONTROLID") as HiddenField;