簡體   English   中英

如何防止來自asp.net linkbutton的回發

[英]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(&#39;ctl00$ContentMain$lbSave&#39;,&#39;&#39;)">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 LinkBut​​ton,請使用標准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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM