【发布时间】:2012-06-23 17:04:03
【问题描述】:
我的网站上有一个数据网格,其中一列是超链接列。在单击超链接之前,我需要设置一些会话。但我无法在客户端设置会话。我该怎么做?
注意:我不能使用按钮栏,浏览器“在新窗口中打开”、“在新标签中打开”属性不起作用。
【问题讨论】:
-
为什么不直接使用查询字符串?或发布一些代码,以便您获得帮助。
-
我不想在地址栏中显示代码。
我的网站上有一个数据网格,其中一列是超链接列。在单击超链接之前,我需要设置一些会话。但我无法在客户端设置会话。我该怎么做?
注意:我不能使用按钮栏,浏览器“在新窗口中打开”、“在新标签中打开”属性不起作用。
【问题讨论】:
使用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 调用。
【讨论】: