Нет, но вы можете создать один класс и использовать его из обоих классов кодирования.Вы можете передать пользовательский элемент управления этому классу и элементы управления доступом по идентификатору.
Любой, если вы не печатали доступ к элементам управления, выполните что-то вроде этого:
общий класс и интерфейс, который определяет дочерние элементы управления, которые включеныи пользовательские элементы управления, и здесь вы можете получить доступ к дочерним элементам управления:
/// <summary>
/// common controls
/// </summary>
public interface ICommonUserControl
{
TextBox TextBox1 { get; }
Label Label1 { get; }
}
public class CommonCode
{
private ICommonUserControl commonUC;
public CommonCode(ICommonUserControl uc)
{
this.commonUC = uc;
}
public void CommonWork()
{
this.commonUC.TextBox1.Text = "SomeText";
this.commonUC.Label1.Text = "Other Text";
}
}
, а затем на всех пользовательских элементах управления вы должны реализовать интерфейс ICommonUserControl, что-то вроде этого:
public partial class UC1 : System.Web.UI.UserControl, ICommonUserControl
{
public TextBox TextBox1 { get { return this.Uc1TextBox1; } }
public Label Label1 { get { return this.Uc1Label1; } }
protected void Page_Load(object sender, EventArgs e)
{
}
}
И наКонец вот пример использования:
Control uc1 = this.LoadControl("UC1.ascx");
this.phParent1.Controls.Add(uc1);
Control uc2 = this.LoadControl("UC2.ascx");
this.phParent2.Controls.Add(uc2);
CommonCode cc1 = new CommonCode(uc1 as ICommonUserControl);
cc1.CommonWork();
CommonCode cc2 = new CommonCode(uc2 as ICommonUserControl);
cc2.CommonWork();