.aspx中的.aspx访问控制

时间:2011-10-12 15:01:34

标签: asp.net ascx

我有一个名为OrderForm.ascx的自定义用户控件。我还有一个使用.aspx控件的OrderForm文件。

我想从.aspx控件访问OrderForm文件的控件。有没有办法做到这一点?

3 个答案:

答案 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;