Я не очень использую VS, так сказать ручками все создаю (ну надо же учиться), с файлами я немного разобралась, с помещением label'а тоже.
У меня есть страница default.aspx, которая включает в себя три контрола header.ascx, footer.ascx, menu.ascx следующим образом:
<%@ Register TagPrefix="TOM" TagName="Header" Src="userControls\header.ascx" %>
<%@ Register TagPrefix="TOM" TagName="Menu" Src="userControls\menu.ascx" %>
<%@ Register TagPrefix="TOM" TagName="Footer" Src="userControls\footer.ascx" %>
<form runat="server" method="post">
<table id="tableMain" class="mainTable" width="100%" height="100%" cellspacing="0" cellpadding="0" border="0">
<tr>
<td colspan="2"><TOM:Header id="Header" runat="server" /></td>
</tr>
<tr>
<td><TOM:Menu id="Menu" runat="server" /></td>
<td><h3>Just some text on the page.</h3></td>
</tr>
<tr>
<td colspan="2"><TOM:Footer id="Footer" runat="server" /></td>
</tr>
</table>
</form>
Можно ли реализовать след.
я хочу, чтобы при нажатии кнопки в контроле меню (menu.ascx) страница default.aspx перегружалась бы и в контроле заголовка (header.ascx) в лейбле lblCurrentSection менялся текст. То есть как событие в одном контроле может повлиять на свойства компонента (lblCurrentSection.Text) в др. контроле?
в контроле menu.ascx есть событие:
void ChooseMenuItem(Object sender, System.EventArgs e)
{
try
{
TomNews.Header headerObject = new TomNews.Header();
headerObject.lblCurrentSection.Text = "something";
}
catch(Exception xcp)
{
lblMenuControl.Text = xcp.Message;
}
}
при нажатии на кнопку получаю xcp.Message = "Object reference not set to an instance of an object."
таким образом я пытаюсь дать посетителю возможность ориентироваться в каком разделе он сейчас находится - смотрит в верхнюю часть там надпись типА "раздел Новостей", выбрал другой пункт меню, страница перегрузилась и в header'e теперь другая надпись типА "раздел События".
Или может я все усложняю и это делается как-то проще?