gpt4 book ai didi

c# - 从问题背后的代码调用JS函数

转载 作者:行者123 更新时间:2023-11-28 15:47:58 24 4
gpt4 key购买 nike

我有一个 JS 函数(显示警报框),并且在 ASP 页面中有一个链接按钮,在该链接按钮后面的代码中单击事件时,我想调用此函数,然后重定向到特定页面。

ASP 代码

 <script type="text/javascript" language="javascript">
function myFunction() {
// executes when HTML-Document is loaded and DOM is ready
alert("document is ready!");
}
</script>
<div>
<asp:LinkButton ID="lnkbtnChangePassword" runat="server" Text="Change Passwrod" OnClick="lnkbtnChangePassword_Click" ></asp:LinkButton>
</div>

C# 代码

 protected void lnkbtnChangePassword_Click(object sender, EventArgs e)
{
ClientScript.RegisterStartupScript(this.GetType(), "CallMyFunction", "myFunction()", true);
Response.Redirect("myPage.aspx");
}

这里,当我单击链接按钮时,它根本不显示警报框/窗口并重定向到该页面。

最佳答案

您应该使用LinkButton.ClientClick而不是 LinkBut​​ton.Click 事件。

Click 事件在服务器上处理。当用户单击该按钮时,页面将被发布回服务器并在服务器端执行代码。

ClientClick事件实际上是应该执行的JavaScript函数的名称。

你可能应该这样做:

<asp:LinkButton ID="lnkbtnChangePassword" runat="server" Text="Change Passwrod" OnClientClick="showMyAlertAndSubmit()"></asp:LinkButton>

<script type="text/javascript">
function showMyAlertAndSubmit(){
alert("Your password is being changed");
// submit your form
}
</script>
<小时/>

为什么您当前的代码不起作用

您当前发送用于显示消息的脚本,并同时重定向。这意味着浏览器接收显示消息和重定向的指令,并在显示消息之前重定向用户。一种方法可能是从客户端重定向。例如:

 protected void lnkbtnChangePassword_Click(object sender, EventArgs e)
{
ClientScript.RegisterStartupScript(this.GetType(), "CallMyFunction", "myFunction()", true);
}

在客户端

function myFunction() {
// show your message here
// do other things you need
// and then redirect here. Don't redirect from server side with Response.Redirect
window.location = "http://myserver/myPage.aspx";
}
<小时/>

其他选项

由于在保存数据和重定向之前需要先在服务器端执行检查,因此可以使用ajax调用服务器而不执行回发。删除 Click 处理程序,仅使用 ClientClick:

function myFunction() {
$.ajax({
type: "POST",
url: "myPage.aspx/MyCheckMethod",
data: "{}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function(msg) {
ShowAlert();
window.location = "http://myserver/mypage.aspx";
}
});
}

了解更多详情please check this tutorial .

关于c# - 从问题背后的代码调用JS函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21572180/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com