- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 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
而不是 LinkButton.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/
我正在寻找匹配 /(?=\W)(gimme)(?=\W)/gi 或类似的东西。 \W 应该是零宽度字符来包围我的实际匹配项。 也许有一些背景。我想用添加的文字填充替换某些单词(总是 \w+),但前提是
如何在不使用 Intent 连接到 VPN 服务的情况下以编程方式检测流量是否正在通过 VPN。有系统调用吗? 最佳答案 这个有效: private boolean checkVPN() {
我是一名优秀的程序员,十分优秀!