J'utilise des pages maîtres ASP, et je voudrais ajouter un gestionnaire d'événement "onkeypress" au <body>
dans la page principale, mais seulement pour une seule page.Remplacer ASP Master Page html dans une seule page de contenu?
Comment faire?
J'utilise des pages maîtres ASP, et je voudrais ajouter un gestionnaire d'événement "onkeypress" au <body>
dans la page principale, mais seulement pour une seule page.Remplacer ASP Master Page html dans une seule page de contenu?
Comment faire?
Je voudrais ajouter une propriété publique à la page MasterPage, quelque chose comme BodyOnKeyPress
. Définissez ensuite l'attribut OnKeyPress de la balise body dans l'événement PreRender de MasterPage. Les pages client ont juste besoin de définir cette propriété avant le déclenchement de l'événement PreRender du maître.
Il s'agit d'un code aérien, car je n'ai pas de projet à tester. Mais il devrait être quelque chose comme ceci:
MasterPage Markup:
<%-- 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;
}
}
Pourrait aussi être fait avec un script dans le contenu de cette page ... Je utiliser jQuery pour simplifier l'idée
<asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent">
<script type="text/javascript">
$(function() {
$(document.body).keypress(function(){});
});
</script>
</asp:Content>
Bon, cela semble être une solution réalisable. Pourriez-vous donner un pointeur sur ce à quoi pourrait ressembler le code de l'événement PreRender? Je pense que je peux comprendre le reste des choses (je suis un débutant ASP Masterpages). – Alan
@Alan - J'ai mis à jour ma réponse avec un exemple. C'est le code de l'air, mais il devrait montrer la structure de base. – AaronSieb
code de l'air, j'aime ça. – Alan