我有一个页面“ PictureLotFiles.aspx”,其中包含一个CheckBoxList和一个链接(最初是超链接,但对我来说不起作用,因为它不会为我保存会话)。
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
,但删除所有Windows格式化参数
Response.Write("<SCRIPT language=\"javascript\">open('PicturesLotFilesSummary.aspx','_blank');</script>");
之后,由浏览器决定是否设置为在新窗口或新标签页中打开链接。
如果您需要传递
sd
作为参数,那没什么大不了的:Response.Write("<SCRIPT language=\"javascript\">open('PicturesLotFilesSummary.aspx?sb=" +
sb + "','_blank');</script>");