0

ドロップダウン リストのあるページがあり、選択した iteam の編集フォームで新しいウィンドウを開く必要があります

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

ブラウザーに新しいウィンドウを開くように指示する必要があります。これはサーバー側では実行できないため、クライアント側で行う必要があります。

1 つのオプションは、 の代わりにResponse.RedirectResponse.WriteJavaScript を出力して新しいウィンドウを開く (そして現在のウィンドウをリダイレクトする) ために使用することです。

もう 1 つのオプションは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 に答える