j'ai créé la fonction "ButtonClick" dans ASP.NET comme suit:
<asp:Button ID="btnLogin" runat="server" Text="Login" CssClass="button" CausesValidation="true" onclick="btnLogin_Click"/>
je veux savoir, est-il possible d'appeler une fonction javascript avant et après l'appel de la fonction de clic sur le bouton asp.net ... ???
Merci.
Oui c'est possible, voici un exemple rapide: Fonction de script Java à appeler.
<script type="text/javascript">
function clientValidate() {
alert("execute before");
return true;
}
function executeAfter() {
alert("execute after");
}
</script>
Voici snapshoot pour le bouton
<asp:Button ID="btnLogin" runat="server" Text="Login" CausesValidation="true" OnClientClick="clientValidate()" onclick="btnLogin_Click"/>
Remarquez la propriété onClientClick = "clientValidate ()", ce sera un script de déclenchement avant que le bouton ne soit cliqué sur le serveur.
Du côté du serveur:
protected void btnLogin_Click(object sender, EventArgs e)
{
ScriptManager.RegisterClientScriptBlock(this, GetType(), "none", "<script>executeAfter();</script>", false);
}
Avis executeAfter () ;, il déclenchera l'exécution de javascript après l'événement du serveur.
N'oubliez pas de placer <asp:ScriptManager runat="server"></asp:ScriptManager>
dans votre fichier aspx.
J'espère que ça aide
mettez ceci sur votre page et assurez-vous d'avoir un scriptmanager. ces codes traiteront vos post-publications pré et post.
var prm, postBackElement;
if (typeof Sys != "undefined") {
prm = Sys.WebForms.PageRequestManager.getInstance();
prm.add_initializeRequest(InitializeRequest);
prm.add_endRequest(EndRequest);
}
function InitializeRequest(sender, e) {
postBackElement = e.get_postBackElement();
if (postBackElement.id == "btnLogin") {
// before click codes
}
}
function EndRequest(sender, e) {
if (postBackElement.id == "btnLogin") {
// after click codes
}
}
Vous pouvez appeler une fonction Java scrip avant que le serveur ne clique avec OnClientClick()
:
aspx (design)
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<script type="text/javascript">
function Test() {
alert('client click');
}
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:Button Text="btn" runat="server" ID="btn"
OnClick="btn_Click" OnClientClick="Test()" />
</div>
</form>
</body>
</html>
.cs
protected void btn_Click(object sender, EventArgs e)
{
Response.Write("Server Click");
}
Avant:
<script type="text/javascript">
function executeBefore() {
alert("execute before");
}
</script>
<asp:Button ID="btnLogin" runat="server" Text="Login" CausesValidation="true" OnClientClick="executeBefore()" onclick="btnLogin_Click"/>
Après:
<script type="text/javascript">
function executeAfter() {
alert("execute after ");
}
</script>
Ajoutez ce code à votre événement côté serveur:
Page.ClientScript.RegisterStartupScript(GetType(), "none", "<script>executeAfter();</script>", false);
Si vous n'avez pas de page maître ou n'utilisez pas ajax, il n'est pas nécessaire d'ajouter ScriptManager.
Pour la première fois, vous pouvez appeler votre fonction javascript dans l'événement OnClientClick de Button en passant votre nom de fonction.
<asp:Button ID="btnLogin" runat="server" Text="Login" CssClass="button" CausesValidation="true" onclick="btnLogin_Click" OnClientClick="return functionNAME();"/>
Deuxième fois, dans votre bouton, cliquez sur l'événement btnLogin_Click appelez js comme suit
ScriptManager.RegisterStartupScript(this.Page, this.Page.GetType(), "script", "<script type='text/javascript'>functionNA();</script>", false);
Pour l'appeler auparavant, vous pouvez envisager d'utiliser la fonction onload, comme dans l'exemple suivant:
<body onload="myFunction()">
Pour l'appeler ensuite, il suffit de lier le bouton pour exécuter JS onClick?
Je ne pense pas avoir bien compris vos intentions.