Для имен обработчиков событий я обычно использую формат, который Visual Studio генерирует по умолчанию: [idControl] _ [eventName]. Но это во многом личное / командное предпочтение. Я видел подобные обсуждения по этому поводу, такие как этот или этот. Независимо от того, как вы решите называть обработчики событий, я думаю, что самое важное - оставаться последовательными.
Что касается наличия обработчиков событий вне вашего кода, я не видел, чтобы это делалось очень часто, но это возможно. Самый простой способ - иметь статический метод в отдельном классе с общей логикой обработки событий. Например, вот как у вас может быть стандартная логика для Page.Loaded в отдельном классе. Я считаю, что вам нужно зарегистрировать обработчик событий с помощью кода - я не думаю, что вы можете сделать это в разметке (aspx).
public static class CommonEventHandlers
{
public static void Page_Loaded(object sender, EventArgs e)
{
//Do any standard logic
//If you need a reference to the page that raised the event,
// you can get it from the 'sender' parameter.
Page page = (Page)sender;
//Do something with 'page'
}
}
Затем в коде программной части страницы, на которой вы хотите использовать этот общий обработчик событий:
public partial class WebForm1 : System.Web.UI.Page
{
public WebForm1()
{
//Register the handler via code in the constructor
Load += CommonEventHandlers.Page_Loaded;
}
}
В качестве другого варианта вы можете использовать наследование, чтобы помочь с повторным использованием кода. Например, у вас может быть базовый класс, от которого наследуются ваши страницы, со стандартными обработчиками. Одним из преимуществ этого является то, что вы можете регистрировать обработчики событий в разметке, даже если метод объявлен в базовом классе, поэтому вам не нужно ничего делать в коде программной части страницы-предка.
person
Stephen McDaniel
schedule
13.07.2011