簡體   English   中英

onclick后如何調用onclientclick

[英]How to call onclientclick after onclick

我有這個按鈕

<asp:Button runat="server" ID="btnReviewDocs" CssClass="btnReviewDocs" data-theme="b"
                Text="Review Documents" OnClick="btnReviewDocs_Click" OnClientClick="clickHyperlink();"/>

在'OnClick'事件中,我正在組裝一個我需要設置為asp的URL:超鏈接,在'OnClick'結束時,我將此URL設置為'asp:Hyperlink'的'NavigateURL'屬性。 一旦'asp:Hyperlink'具有正確的URL,我需要調用'clickHyperlink()'函數。

function clickHyperlink() {
    var href = $('#hlnkID').attr('href');
    if (typeof href !== "undefined") {
        $.mobile.showPageLoadingMsg();
        window.location.href = href;
    }
}

但是'OnClientClick'事件總是在'OnClick'之前執行。 有關解決方法的任何建議嗎?

我正在做所有這些事情,因為我遇到了JQuery Mobile和'Response.Redirect(url);'的問題。 正在更改頁面,但不是URL。

我相信你真的不需要在JS部分中涉及Hyperlink控件。 修改您的JS函數並從btnReviewDocs按鈕中刪除OnClientClick屬性:

<script type="text/javascript">
    function clickHyperlink(href) {
        $.mobile.showPageLoadingMsg();
        window.location.href = href;
    }
</script>

在服務器上,在btnReviewDocs_Click方法中:

protected void btnReviewDocs_Click(object sender, EventArgs e)
{
    // TODO: set the url, maybe append some params to the 
    // hlnkID.NavigateUrl value
    var url = "http://stackoverflow.com/";
    ClientScript.RegisterStartupScript(Page.GetType(), 
        "clickHyperlink",
        "clickHyperlink('" + url + "');",
        true);
}

使用ClientScript對象中的RegisterStartupScript在回發后運行代碼--->

protected void btn_Click(object sender, EventArgs e)
    { 
        //some code    
        this.ClientScript.RegisterStartupScript(this.GetType(), "clintClick", "clickHyperlink", true);
    }

嘗試這個

    protected void btnReviewDocs_Click(object sender, EventArgs e)
    { 
        //something doing here

        Page.ClientScript.RegisterStartupScript(this.GetType(), "test", "<script type='text/javascript'>clickHyperlink()</script>");//call javascript function
    }

答案由@Alex Filipovici提及。

但首先你應該問自己,你真的需要回到客戶端進行重定向嗎?

為什么不打電話:

Response.Redirect("MyURL");

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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