Для имен обработчиков событий я обычно использую формат, который 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;
}
}
В качестве другого варианта вы можете использовать наследование, чтобы помочь с повторным использованием кода. Например, у вас может быть базовый класс, от которого наследуются ваши страницы, со стандартными обработчиками. Одним из преимуществ этого является то, что вы можете зарегистрировать обработчики событий в разметке, даже если метод объявлен в базовом классе, поэтому вам не нужно ничего делать в коде позади страницы предка.