ASP:
<asp:LinkButton ID="lbSave" OnClick="lbSave_Click" runat="server">Save</asp:LinkButton>
HTML:
<a id="ContentMain_lbSave" href="javascript:__doPostBack('ctl00$ContentMain$lbSave','')">Save</a>
代码隐藏:
public void lbSave_Click(object sender, EventArgs e)
{
if (strP != "")
{
ScriptManager.RegisterStartupScript(this.Page, typeof(Page), "DiffUser", "showDiffUser();", true);
}
else
{
//do something else...
}
}
JQuery的:
function showDiffUser() {
$("#dvHide").fadeIn("slow");
$("#backOverlay").fadeIn("slow");
}
当我单击按钮时,我希望页面不进行回发并运行JQuery函数。相反,当我单击链接时,它会刷新页面,然后执行JQuery函数。
如何阻止回发。
我尝试了以下内容:onClientClick='javascript:void(0);'
但不执行JQuery函数。
答案 0 :(得分:3)
试
OnClientClick="return false;"
<强>更新强>
OnClientClick="showDiffUser();return false;"
showDiffUser();
调用JS-Method
return false;
阻止了回发
答案 1 :(得分:2)
在单击按钮后,您只需将jQuery函数调用添加到页面。当然,如果你取消点击回发,函数调用永远不会到达页面而永远不会被执行。
你想要的是调用这个函数然后抑制,对吧?因此,请执行以下操作:
OnClientClick="showDiffUser(); return false;"
您不再需要服务器端点击处理程序了。
答案 2 :(得分:1)
如果您不希望导致回发不使用.Net LinkButton,请使用标准HTML超链接并使用jQuery捕获事件:
<a id="my-link">Save</a>
<script>
$(function () {
$("#my-link").click(function () {
showDiffUser();
});
})
</script>
在同一个调用中,您可以执行AJAX调用来提升服务器端验证:
<script>
$(function () {
$("#my-link").click(function () {
// AJAX Call
$.ajax({
type: "post",
url: "your-url",
success: function (returnData) {
showDiffUser();
}
});
});
})
</script>