我在ASP.NET中创建了“ButtonClick”功能如下:
<asp:Button ID="btnLogin" runat="server" Text="Login" CssClass="button" CausesValidation="true" onclick="btnLogin_Click"/>
我想知道,是否可以在调用asp.net按钮点击功能之前和之后调用javascript函数... ???
感谢。
答案 0 :(得分:13)
是的,这是可能的,这是一个简单的例子: 要调用的Java脚本函数。
<script type="text/javascript">
function clientValidate() {
alert("execute before");
return true;
}
function executeAfter() {
alert("execute after");
}
</script>
这是按钮
的快照<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>
。
希望有所帮助
答案 1 :(得分:4)
将此信息放在您的页面上,并确保您拥有一个脚本管理器。这些代码将处理您的pre&amp;回发后。
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
}
}
答案 2 :(得分:2)
您可以在使用OnClientClick()
:
<强> 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");
}
答案 3 :(得分:2)
在:
<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。
答案 4 :(得分:1)
第一次在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);
答案 5 :(得分:0)
为了以前调用它,您可以考虑使用onload函数,如下例所示:
<body onload="myFunction()">
之后调用它,只需链接按钮即可执行JS onClick?
我认为我完全理解你的意图。