[英]How to prevent postback from asp.net linkbutton
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函數。
嘗試
OnClientClick="return false;"
更新:
OnClientClick="showDiffUser();return false;"
showDiffUser();
調用JS-Method
return false;
防止回發
您只需在單擊按鈕后將 jQuery函數調用添加到頁面。 當然,如果你抑制點擊回發,函數調用永遠不會到達頁面,永遠不會被執行。
你想要的是調用這個函數然后壓制,對嗎? 因此這樣做:
OnClientClick="showDiffUser(); return false;"
而且您不再需要服務器端點擊處理程序。
如果您不想導致回發,請不要使用.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>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.