[英]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.