我需要一个链接,该链接首先在会话中保存变量,然后打开一个新选项卡



我有页面"PictureLotFiles.aspx",其中包含一个复选框列表和一个链接(最初是一个超链接,但它对我不起作用,因为它不会为我保存会话(。

PicturesLotFiles.aspx
<asp:CheckBoxList ID="cblWarehouse" runat="server" Font-Size="10pt" Font-Names="Verdana"
RepeatColumns="8" RepeatDirection="Horizontal" OnSelectedIndexChanged="cblWarehouse_SelectedIndexChanged">
</asp:CheckBoxList>
<asp:LinkButton ID="lnkBtnSummary" runat="server" OnClick="lnkBtnSummary_Click"
Target="_blank">Review Lot Pictures Summary Report</asp:LinkButton>

我试图完成的是将选定的值从cblWarehouse传递到摘要页面"PictureLotFilesSummary.aspx"。所以我有以下代码隐藏工作。

PicturesLotFiles.aspx.cs
protected void lnkBtnSummary_Click(object sender, System.EventArgs e)
{
Session["WarehouseSelected"] = "";
StringBuilder sb = new StringBuilder();
foreach (ListItem listItem in cblWarehouse.Items)
{
if (listItem.Selected)
{
sb.Append(listItem.Value);
sb.Append(", ");             
}
}
if (sb.Length>2)
sb.Remove(sb.Length - 2, 2);
Session["WarehouseSelected"] = sb;
//Response.Write("<SCRIPT language="javascript">open('PicturesLotFilesSummary.aspx','_blank','top=0,left=0,status=yes,resizable=yes,scrollbars=yes');</script>");
//Response.Redirect("~/PicturesLotFilesSummary.aspx");
}

从上面的代码中,我能够使用 Session 传递值,但我还没有尝试过 QueryString。我已经注释掉了最后两行,因为其中一行会打开一个新的弹出窗口,而另一行只是重定向到页面。

还有其他方法可以尝试实现我的目标吗?哪个是将所选值传递到摘要页面并在新选项卡而不是新窗口中打开它? 谢谢!

您可以使用window.open,但删除所有窗口格式参数

Response.Write("<SCRIPT language="javascript">open('PicturesLotFilesSummary.aspx','_blank');</script>");

之后,这取决于浏览器的设置,是否设置为在新窗口或新选项卡中打开链接。

如果您需要传递sd作为参数,那应该没什么大不了的:

Response.Write("<SCRIPT language="javascript">open('PicturesLotFilesSummary.aspx?sb=" + 
sb + "','_blank');</script>");

最新更新