HyperLink または LinkButton を使用する必要があるかどうかわからない状況があります。ユーザーがリンクのリストをクリックすると、いくつかの情報をセッションに保存するクリックイベントをトリガーしたい (LinkButton を使用する必要があります) が、これらのリンクが新しいタブを開くようにしたい (HyperLink を使用する必要があります)。
7 に答える
LinkButton
PostBack を引き起こす aを使用する必要があります。追加のタブを開くには、JavaScript を発行します。
protected void MyLinkButton_Click(object sender, EventArgs e)
{
Session["MyData"] = 123;
Page.ClientScript.RegisterStartupScript(Page.GetType(),
"newWindow",
"window.open('http://myurl','_blank');",
true);
}
LinkButton
will は、基本的にはリンクのpostback
ように表示されるボタンです。response.redirect(url)
イベント ハンドラーで a を設定して、新しいタブを設定できます。
ハンドラーで何をしたいのか、さらに情報を追加できますか?おそらくこれはJquery
、サーバー側のメソッドを呼び出すことで実現できますか?
Response.Redirect
特定の URL にヒットして必要なセッション データを保存し、情報を保存した後に次のページにリダイレクトするために使用する HyperLink と言えます。
ハイパーリンクの URL は、情報を保存できるようにサーバーを指し、必要なデータを保存した後、リダイレクトを使用してユーザーを正しいエンドポイントに向けます。
例
- ハイパーリンクの URL は を指し
~/yourpage.aspx?state=NY
、target="_blank"
- サーバーは URL に応答し、クエリ文字列をチェックします。
- クエリ文字列が存在する場合、データを格納 (
if (Request.QueryString["state"] != null) Session["state"] = Request.QueryString["state"]
) - ユーザーを適切な URL にリダイレクトします (
Response.Redirect("http://www.ny.gov")
)
データがまったく機密である場合はLinkButton
、他の回答で指摘されている方法を使用することをお勧めします。新しいタブを開くのは難しいので、サーバー側から新しいウィンドウを開く簡単な方法があるとは思わないので、@andleer の回答で概説されているように Javascript を書き出す必要があるでしょう。
を使用する必要がありますLinkButton
。
2 つの違いは、LinkButton
ページをサーバーにポストバックしてロジックを作成できるようにすることですが、HyperLink
ポストバックではなく、指定されたリンクにリダイレクトするだけなので、HyperLink
ナビゲートするときに使用します。
そのような場合、ボタンを使用していくつかの情報を保存したり、同様のオプションとして使用したりできます。ただし、リンクを追加する場合は、ハイパーリンクを使用する必要があります。また、JavaScript を使用して URL をボタンにリンクし、ユーザーがそのボタンをクリックしたときにセッション情報が保存され、新しい URL にリダイレクトされるようにすることもできます。ウェブページ。