2010-05-19 6 views

Répondre

1

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; 
    } 
} 
+0

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

+1

@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

+0

code de l'air, j'aime ça. – Alan

1

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> 
Questions connexes