Я бы добавил публичное свойство в MasterPage, что-то вроде BodyOnKeyPress
. Затем установите атрибут OnKeyPress тега body в событии PreRender MasterPage. Клиентские страницы просто должны установить это свойство до того, как сработает событие PreRender Мастера.
Это воздушный код, поскольку у меня нет проекта для тестирования. Но должно быть что-то вроде этого:
Разметка MasterPage:
<%-- Mark the body tag with runat="server", and give it an ID to reference in code. --%>
<body id="mainBody" runat="server">
...
</body>
MasterPage CodeBehind:
protected void Page_PreRender(...) {
mainBody.Attributes["onkeypress"] = this.BodyOnKeyPress;
}
public string BodyOnKeyPress {
get {
return ViewState["BodyOnKeyPress"];
}
set {
ViewState["BodyOnKeyPress"] = value;
}
}