1

私はこのボタンを持っています

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

「OnClick」イベントでは、asp:Hyperlink に設定する必要がある 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 は変更されていません。

4

4 に答える 4

2

HyperlinkJS 部分にコントロールを含める必要はないと思います。JS 関数を変更し、ボタンOnClientClickから属性を削除します。btnReviewDocs

<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);
}
于 2013-07-03T12:38:49.677 に答える
1

オブジェクトで を使用してRegisterStartupScriptClientScriptポストバック後にコードを実行します--->

protected void btn_Click(object sender, EventArgs e)
    { 
        //some code    
        this.ClientScript.RegisterStartupScript(this.GetType(), "clintClick", "clickHyperlink", true);
    }
于 2013-07-03T12:33:48.120 に答える
0

これを試して

    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
    }
于 2013-07-03T12:35:17.543 に答える
0

答えは@Alex Filipoviciによって言及されています。

しかし、最初に、リダイレクトを行うためにクライアント側に戻る必要があるかどうかを自問する必要があります。

なぜ電話しないのですか:

Response.Redirect("MyURL");
于 2013-07-03T12:49:17.810 に答える