[英]How to call a javascript function before and after button click event call in asp.net
我在ASP.NET中創建了“ButtonClick”功能,如下所示:
<asp:Button ID="btnLogin" runat="server" Text="Login" CssClass="button" CausesValidation="true" onclick="btnLogin_Click"/>
我想知道,是否可以在調用asp.net按鈕單擊功能之前和之后調用javascript函數... ???
謝謝。
是的,這是可能的,這是一個快速示例:要調用的Java腳本函數。
<script type="text/javascript">
function clientValidate() {
alert("execute before");
return true;
}
function executeAfter() {
alert("execute after");
}
</script>
這是按鈕的snapshoot
<asp:Button ID="btnLogin" runat="server" Text="Login" CausesValidation="true" OnClientClick="clientValidate()" onclick="btnLogin_Click"/>
注意屬性onClientClick =“clientValidate()”,它將在按鈕單擊服務器之前觸發腳本。
在服務器端:
protected void btnLogin_Click(object sender, EventArgs e)
{
ScriptManager.RegisterClientScriptBlock(this, GetType(), "none", "<script>executeAfter();</script>", false);
}
注意executeAfter();,它會在服務器事件后觸發javascript執行。
不要忘記在aspx文件中放置<asp:ScriptManager runat="server"></asp:ScriptManager>
。
希望它有所幫助
把它放在你的頁面上,確保你有一個腳本管理器。 這些代碼將處理您的前后回發。
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
}
}
您可以在使用OnClientClick()
進行服務器端單擊之前調用Java腳本函數:
ASPX(設計)
<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");
}
之前:
<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"/>
后:
<script type="text/javascript">
function executeAfter() {
alert("execute after ");
}
</script>
將此代碼添加到服務器端事件:
Page.ClientScript.RegisterStartupScript(GetType(), "none", "<script>executeAfter();</script>", false);
如果您沒有母版頁,或者沒有使用ajax,則無需添加ScriptManager。
第一次在Button的OnClientClick事件中調用你的javascript函數傳遞你的函數名。
<asp:Button ID="btnLogin" runat="server" Text="Login" CssClass="button" CausesValidation="true" onclick="btnLogin_Click" OnClientClick="return functionNAME();"/>
第二次,在你的按鈕點擊事件btnLogin_Click調用js如下
ScriptManager.RegisterStartupScript(this.Page, this.Page.GetType(), "script", "<script type='text/javascript'>functionNA();</script>", false);
為了以前調用它,您可以考慮使用onload函數,如下例所示:
<body onload="myFunction()">
為了之后調用它,只需鏈接按鈕來執行JS onClick?
我不認為我完全理解你的意圖。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.