Могу ли я вспомнить событие от главной страницы до ASPX - PullRequest
3 голосов
/ 29 января 2010

Могу ли я вспомнить событие нажатия кнопки на главной странице, которое будет обработано обработчиком события на странице aspx?

Ответы [ 2 ]

1 голос
/ 29 января 2010

Вы можете выставить обработчик события и подключить его, например так:

В мастере:

public event EventHandler ButtonClick
{
  add { ButtonThatGetsClicked.Click += value; }
  remove { ButtonThatGetsClicked.Click -= value; }
}

На странице:

protected override void OnLoad(EventArgs e)
{
  base.OnLoad(e);
  ((MyMasterType)Master).ButtonClick += MyHandler;
}

private void MyHandler(object sender, EventArgs e)
{
  //Do Something
}

Кроме того, вы можете избежать приведения типа Master и иметь его уже в intellisense как тип вашего Master, используя директиву @ MasterType в разметке aspx.

0 голосов
/ 29 января 2010

Вы можете ретранслировать событие. Объявите новое соответствующее событие на вашей главной странице, например HelpClicked, а затем страницы aspx, которые используют этот мастер, могут подписаться на событие и обработать его соответствующим образом. Мастер также может выполнить действие по умолчанию, если нет подписчиков (или использовать EventArgs со свойством Handled или что-то в этом роде).

...