0

選択した値が特定の値の場合、いくつかのことを行ってから新しいタブの新しいページにリダイレクトする必要があるドロップダウンリストがあります

これを行う最善の方法は、次のように response.wirte() を使用することだと思いました

Response.Write(<script>);
Response.Write(window.open('url'));
Response.Write(</script>);

または Page.ClientScript.RegisterStartupScript() メソッドを呼び出して、別のタブで新しいページを開く JavaScript メソッドを呼び出します。

Page.ClientScript.RegisterStartupScript(GetType(),"GoToURL", "<script language=JavaScript>GoToURL(" + url + ")</script>");

そしてJavaScriptは次のようになります

<script type="text/javascript">
                function GoToURL(url)
                {
                    window.open(url);
                }
            </script>

これらと response.write メソッドの両方を試しましたが、resposnse リクエストを解析できず、Page.ClientScript.RegisterStartupScript を使用しても何も起こりません。

これでどこが間違っているか、またはこれを行う他の可能な方法を誰でも見ることができますか

これらのコード ピースは両方とも、ドロップ ダウンリストの SelectedIndexChanged メソッド内で実行されたことに注意してください。

前もって感謝します

最終的に更新 して、ドロップダウンメニューのonselectedから実行するJavaスクリプトを取得するために何も機能していないように見えるため、コードビハインドとJavaスクリプトを実行するためにボタンを最後に使用しました(これらのonclientclickイベントが大好きです:p)イベント

しかし、すべての提案をありがとう:)

4

3 に答える 3

0

編集:

あなたのコメントに基づいて、これがあなたが探している解決策だと思います。ドロップダウン リストの値ごとにケースを作成し、それらのケースに従って、ユーザーを新しいタブの別の URL にリダイレクトできます。

    protected void ddlAuthoritytype_SelectedIndexChanged(object sender, EventArgs e)
{
    var port = Request.Url.IsDefaultPort ? "" : ":" + Request.Url.Port.ToString();

    string ddl = ddlAuthoritytype.SelectedValue;
    switch (ddl)
    {
        case "AL":
            var script = string.Format("window.open('{0}://{1}{2}{3}')", Request.Url.Scheme, Request.Url.Host, port, ResolveUrl("~/alabama-state-tax-calculator.aspx"));
            ScriptManager.RegisterStartupScript(this, this.GetType(), "newWindow",script, true);
            break;
    }
}
于 2013-04-03T16:00:06.437 に答える
0

代わりに非表示フィールドを使用できます。コード ビハインドで、URL を使用して非表示フィールドの値を設定します。

javascript 関数でpageLoad()非表示フィールドの値を確認し、空でない場合は次のwindow.open(hiddenFieldValue)ように使用します。

<script type="text/javascript">
    function pageLoad()
    {
        // Use $('#' + '<%= hfURL.ClientID %>') if hidden field has runtat="server"
        if($('#' + '<%= hfURL.ClientID %>').val()) 
            window.open($('#' + '<%= hfURL.ClientID %>').val()); 
            // OR window.open($("hfURL").val(), '_blank');
    }
</script>
于 2013-04-03T16:05:36.883 に答える