开发者

Access control from .aspx in .ascx

开发者 https://www.devze.com 2023-04-12 07:46 出处:网络
I have a custom user control that I made called OrderForm.ascx. I also have an .aspx file that utilizes the OrderForm control.

I have a custom user control that I made called OrderForm.ascx. I also have an .aspx file that utilizes the OrderForm control.

I want to access a control on the .aspx file from the 开发者_如何学运维OrderForm control. Is there a way to do this?


You could use the FindControl method in the user control like this:

Label label = Page.FindControl("Label1") as Label;
if (label != null)
    string labelText = label.Text;

As a note on the above, depending on where the Label is in the page, you may need to use recursion to find the Label.

You could also create a property on the page that returns the text of the Label:

public string LabelText
{
    get { return Label1.Text; }
}

To access the property from the user control, here are two options:

Option #1

string labelText = ((PageName)Page).LabelText;

Option #2

string labelText = Page.GetType().GetProperty("LabelText").GetValue(Page, null).ToString();


If you have two user controls, ControlA and ControlB, and they are both registered on the same page you can easily access one from the other. Simply create a public property that you want to have access to in ControlB such as:

Public ReadOnly Property ControlB_DDL() As DropDownList
    Get
        Return Me.ddlItems
    End Get
End Property

And then you can reference that property in ControlA after finding that control:

ControlB ctrlB = (ControlB)Page.FindControl("cB");
DropDownList ddl = ctrlB.ControlB_DDL;

Refer here for more info: http://www.dotnetcurry.com/ShowArticle.aspx?ID=155


To access the controls of .ascx in .aspx.

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

And to access controls of aspx in ascx.

HiddenField selectedEmailsId = Page.FindControl("CONTROLID") as HiddenField;
0

精彩评论

暂无评论...
验证码 换一张
取 消