如何在onclick之后调用onclientlick
本文关键字:调用 onclientlick 之后 onclick | 更新日期: 2023-09-27 18:21:02
我有这个按钮
<asp:Button runat="server" ID="btnReviewDocs" CssClass="btnReviewDocs" data-theme="b"
Text="Review Documents" OnClick="btnReviewDocs_Click" OnClientClick="clickHyperlink();"/>
在"OnClick"事件中,我正在组装一个URL,我需要将其设置为asp:Hyperlink,在"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.RRedirect(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 Filippovici提到了答案。
但首先你应该问问自己,你真的需要回到客户端进行重定向吗?
为什么不打电话:
Response.Redirect("MyURL");