。ascx中.aspx的访问控制

问题描述 投票:1回答:3

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

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

asp.net ascx
3个回答
0
投票

您可以像这样在用户控件中使用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();

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


0
投票

访问.aspx中.ascx的控件。

HiddenField selectedEmailsId = performanceReportCtrl.FindControl("CONTROLID") as HiddenField;

并访问asx中aspx的控件。

HiddenField selectedEmailsId = Page.FindControl("CONTROLID") as HiddenField;
© www.soinside.com 2019 - 2024. All rights reserved.