Web サイトにデータグリッドがあり、列の 1 つはハイパーリンク列です。ハイパーリンクをクリックする前に、いくつかのセッションを設定する必要があります。しかし、クライアント側でセッションを設定できません。どうすればできますか?
注:ボタン列を使用できません。ブラウザの「新しいウィンドウで開く」、「新しいタブで開く」プロパティが機能しません。
を使用しLinkButton
ます。このコントロールは、任意のボタンとしてサーバーへのポストバックを生成します。ボタン ハンドラーで、必要なセッション変数を設定し、Response.Redirect()
その後を実行します。
リンクを新しいウィンドウで開く必要がある場合。代わりにこれを使用してくださいResponse.Redirect()
ASPX
<asp:LinkButton ID="LinkButton1" runat="server"
OnClick="LinkButton1_Click">Open</asp:LinkButton>
CS
protected void LinkButton1_Click(object sender, EventArgs e)
{
Session["MyVar1"] = "SomeValue";
Page.ClientScript.RegisterClientScriptBlock(GetType(), "OPEN_NEW_WINDOW",
"window.open('page.aspx','_blank')", true);
}
クライアントからセッション変数を設定する必要がある場合でも、それを行うことができますが、そのためにサーバーに対してAJAX呼び出しを行う必要があります。