Что я не могу получить доступ к UserControl из моего файла aspx.cs? - PullRequest
1 голос
/ 20 июля 2009

У меня есть файл default.aspx и 2 пользовательских элемента управления.

Код для управления пользователем 1

<%@ Control Language="C#" AutoEventWireup="true" CodeFile="WebUserControl.ascx.cs" Inherits="WebUserControl" %>

<%@ Register Src="~/WebUserControl2.ascx" TagName="wc1" TagPrefix="asp2" %>

<asp2:wc1 ID="control1" runat="server" />

Код для управления пользователем 2

<%@ Control Language="C#" AutoEventWireup="true" CodeFile="WebUserControl2.ascx.cs" Inherits="WebUserControl2" %>

Почему я не могу получить доступ к пользовательскому элементу управления 1 из моего исходного кода в пользовательском элементе управления 2?

protected void Page_Load(object sender, EventArgs e)
    {
        WebUserControl //Doesn't work
    }

Ответы [ 3 ]

1 голос
/ 20 июля 2009

Вам необходимо получить доступ по имени элемента управления, а не по его классу:

control1.DoSomething();

Вообще говоря, классы UserControl не видны в проекте ASP.Net, так как компиляция добавляет различные сборки.

0 голосов
/ 20 июля 2009

Попробуйте сделать все наоборот, можете ли вы получить доступ к Ucrl: 2 из Ucrl: 1? Разоблачить публичную собственность и посмотреть, можете ли вы её выставить:

из Ucrl: 1> Загрузка страницы>

Ucr2.MyProp

Иногда выполняйте Build> Clean Solution, а затем Build> Rebuild Solution и разбирайтесь, или, по крайней мере, направьте вас на правильный путь.

0 голосов
/ 20 июля 2009

Вам необходимо создать публичное свойство в usercontrol2 типа usercontrol1. На странице, на которой будут храниться экземпляры обоих элементов управления, присвойте ссылку usercontrol1 свойству usercontrol2, которое имеет тип usercontrol1.

Причина, по которой вы не можете получить доступ, заключается в том, что вам нужен экземпляр userocntrol1 в usercontrol2. Эта проблема будет решена с использованием вышеупомянутого подхода.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...