2017-02-14 38 views
1

私はLinkBut​​tonを持っています。それはデータにデータを入力し、その基盤上で次のページにリダイレクトします。今ポイントは、ユーザRight Click --> Open in new tabまたはOpen in new windowが空白のウィンドウを開くときです。ASP.NETのリンクボタンで「新しいタブで開く」と「新しいウィンドウで開く」を右クリックして管理する方法は?

このように多くの問題が発生していますが、どれも問題なく機能しています。 aspxの私はいくつかの解決策を試してみましたが、それらのどれもが私を助けていない

protected void Link_SignUp_Click(object sender, EventArgs e) 
{ 
    //populate data 
    //make URL -- DotnetNuke 
    string miUrl = base.EditUrl("", "", "portal_profile"); 
    //redirec to URL 
    Response.Redirect(miUrl, true); 
} 

<asp:LinkButton runat="server" 
       ID="Link_SignUp" 
       OnClick="Link_SignUp_Click">Signup Now! 
</asp:LinkButton> 

Clickイベント:

は、ここに私のコードです。
フォームのプロパティーtarget = _blankを設定しようとしましたが、うまくいきましたが、clientclickで手動で設定しました。

自然な振る舞いが必要です。

1-ユーザーが右クリックして[新しいタブで開く]を選択すると、新しいタブで開きます。

2ユーザーが右クリックして[新しいウィンドウで開く]を選択すると、新しいウィンドウで開きます。

3ユーザーがクリックをしたときに、同じページで開く必要があります。

+0

をなぜページのロード時URLをロードし、代わりにLinkBut​​tonコントロールの通常のハイパーリンクコントロールを使用していませんか? – mason

+0

リンクボタンはデータを入力し、リダイレクトURLを作成します。なぜ私はユーザーハイパーリンクをしなかったのですか?私を案内してください。 –

+0

再度 - ページを読み込んだときに正しいURL *を作成してHyperLinkコントロールのNavigateUrlに割り当てるのはなぜですか?クリックしたときに正しいURLを生成する必要があるのはなぜですか?なぜあなたはあらかじめそれをすることができないのですか? – mason

答えて

0

これを試す:

リンクボタンではなく、aspxビューでハイパーリンクを作成します。

Page_Loadでは、Link_SignUp_Clickイベントで使用するコードを使用して関連URLを構築します。すると、直後、あなたはそうのようなハイパーリンクNavigateUrlプロパティに割り当てることができます。

すなわち

protected void Page_Load(object sender, EventArgs e) 
{ 
    string miUrl = base.EditUrl("", "", "portal_profile"); 
    HyperLinkID.NavigateUrl = miUrl; 
} 
+0

いいえ、window.openは使用しないでください。これは、リンクを開きたい場所でのユーザーの希望を尊重するものではありません。 HyperLinkを使用してNavigateUrlプロパティを設定するだけで、はるかにクリーンになります。 JavaScriptは必要ありません。 – mason

+0

良い点、固定! :) –

関連する問題