На вашей главной странице это ничего не меняет - это установка ucBottom.varBottomID
на себя. (Изменить: кажется, было исправлено)
В ucTop
, int varBottomID = 100;
ничего не делает - он устанавливает переменную внутри функции, которая не будет видна снаружи.
Результатом этих двух проблем является то, что вы никогда не получите ничего от ucTop
до ucBottom
.
(Кстати, условное обозначение состоит в том, чтобы начинать имена классов с заглавной буквы, а имена экземпляров - с заглавной буквы. При взгляде на код не совсем очевидно, пытаетесь ли вы получить доступ к статическим элементам или членам экземпляров ваших классов. здесь я предполагаю, что у вас есть элемент управления ucBottom
, который является экземпляром класса ucBottom
, и то же самое для ucTop
. Это единственный случай, когда я вижу, где ваш код, как вставлено, будет компилироваться без ошибок .)
Вам может понадобиться что-то похожее на:
public partial class _Default : Page
{
protected void Page_Load(sender obj, EventArgs e)
{
ucBottom.varBottomID = ucTop.varBottomID; // fix the first issue
}
}
public partial class ucTop : UserControl
{
public int varBottomID { get; set; } // fix the second issue
protected void Page_Load(object src, EventArgs e)
{
varBottomID = 100;
}
}
Вам также нужно будет выбрать различные события для запуска, если вы идете по этому маршруту. Если все запускается при загрузке, у вас есть проблема - сначала запускается Load на странице, , затем на дочерних элементах управления. Таким образом, свойство не будет установлено правильно. (Настройка выполняется в 3 этапа: ucTop
, выбирая правильное значение для установки, _Default
устанавливая его сверху вниз и ucBottom
, используя его. Вам нужно, чтобы эта последовательность пошла решить , set , для правильной работы используйте , но если все сработает при загрузке, вы получите set , решить , использовать или установить , использовать , решить .) Вы можете разрешить _Default
делать свое дело в LoadComplete и ucBottom
на PreRender.