0

我有一个带有下拉列表的页面,我必须使用选定的 itam 编辑表单打开一个新窗口

protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
{
    this.EntityGrid.Columns.Clear();
    EntityName.Text = DropDownList1.SelectedItem.Text;
    newEntity.Visible = true;
    newEntity.Text = DropDownList1.SelectedItem.Text;
    ...
}

以下作品

protected void newEntity_Click(object sender, EventArgs e)
{
    var entity = newEntity.Text;
    Response.Redirect(entity + "Edit.aspx");
    ...
}

但我怎样才能在单独的选项卡而不是新窗口中打开。

4

3 回答 3

1

打开单独的窗口是客户端功能,因此您需要“注入”告诉浏览器执行此操作的 javascript。

Response.Write(
     string.Format(
        "<script>window.open('{0}','_blank');</script>", entity + "Edit.aspx"));

该参数_blank告诉windows.open函数打开一个新窗口

于 2013-05-14T21:00:26.473 回答
1

您需要引导浏览器打开一个新窗口 - 这不能在服务器端完成,因此您必须在客户端这样做。

一种选择是Response.Redirect使用Response.Write输出 JavaScript 来打开新窗口(并重定向当前窗口),而不是使用 。

target="_blank"另一种选择是在将打开新窗口的链接上使用属性。

于 2013-05-14T21:01:03.547 回答
0

您可以忘记使用 JavaScript,因为浏览器控制它是否在新选项卡中打开。您最好的选择是执行以下操作:

<form action="http://www.yoursite.com/dosomething" method="get" target="_blank">
    <input name="dynamicParam1" type="text"/>
    <input name="dynamicParam2" type="text" />
    <input type="submit" value="submit" />
</form>

由于该target属性,无论客户端使用哪种浏览器,这将始终在新选项卡中打开。

于 2013-09-12T14:16:22.497 回答