За имена на манипулатори на събития обикновено използвам формата, който 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