Ответ 1
Вы можете использовать window.open
. Вот так:
protected void btnNewEntry_Click(object sender, EventArgs e)
{
Page.ClientScript.RegisterStartupScript(
this.GetType(),"OpenWindow","window.open('YourURL','_newtab');",true);
}
Я хочу открыть страницу на новой вкладке браузера при нажатии кнопки.
Я много искал в google, но ничего не нашел.
Вот моя кнопка.
<asp:Button ID="btnNewEntry" runat="Server" CssClass="button" Text="New Entry" OnClick="btnNewEntry_Click" />
protected void btnNewEntry_Click(object sender, EventArgs e)
{
Response.Redirect("New.aspx");
}
Не могли бы вы помочь мне, как я могу это сделать?
Вы можете использовать window.open
. Вот так:
protected void btnNewEntry_Click(object sender, EventArgs e)
{
Page.ClientScript.RegisterStartupScript(
this.GetType(),"OpenWindow","window.open('YourURL','_newtab');",true);
}
Почему бы просто не вызвать window.open прямо из OnClick?
<asp:Button ID="btnNewEntry" runat="Server" CssClass="button" Text="New Entry" OnClick="window.open('New.aspx')" />
Используйте JavaScript для основной формы/события нажатия кнопки. Пример:
Context.Response.Write("<script language='javascript'>window.open('AccountsStmt.aspx?showledger=" & sledgerGrp & "','_newtab');</script>")
Позаботьтесь о reset target, в противном случае все остальные вызовы, такие как Response.Redirect
, будут открываться на новой вкладке, которая может быть не такой, какой вы хотите.
<asp:LinkButton OnClientClick="openInNewTab();" .../>
В javaScript:
<script type="text/javascript">
function openInNewTab() {
window.document.forms[0].target = '_blank';
setTimeout(function () { window.document.forms[0].target = ''; }, 0);
}
</script>
попробуйте это, а не перенаправляйте...
Response.Write("<script>");
Response.Write("window.open('ClickPicture.aspx','_blank')");
Response.Write("</script>");
Попробуйте это
<a href="#" target="_blank">Link</a>
Просто такая же проблема. Клиентская сторона не была подходящей, потому что кнопка отправляла информацию из списка.
Видел то же решение, что и Amaranth на way2coding, но это не сработало для меня.
Однако в комментариях кто-то опубликовал аналогичное решение, которое работает
OnClientClick="document.getElementById('form1').target ='_blank';"
где form1 является идентификатором вашей формы asp.net.
Вы должны использовать Javascript, так как код позади только на стороне сервера. Я уверен, что это работает.
<asp:Button ID="btnNewEntry" runat="Server" CssClass="button" Text="New Entry" OnClick="btnNewEntry_Click" OnClientClick="aspnetForm.target ='_blank';"/>
protected void btnNewEntry_Click(object sender, EventArgs e)
{
Response.Redirect("New.aspx");
}
Per Откройте URL-адрес на новой вкладке (а не в новом окне) с помощью JavaScript
Ничто, которое может сделать автор, не может выбрать для открытия в новой вкладке вместо нового окна.
Браузер решает между открытием новой вкладки или открытием нового окна. Вы не можете контролировать это как разработчика.
Простое решение:
<a href="https://www.google.com" target="_blank">
<button type="button">Open new tab</button>
</a>
Вы делаете это на стороне клиента. вы можете разместить гиперссылку html с target = "_ blank" и style = "display: none". после этого создайте функцию javascript, например следующую
function openwindow(){
$("#hyperlinkid").click();
return false;
}
используйте эту функцию как обработчик события onclientclick кнопки, например onclientclick = "return openwindow()" Вам нужно включить jquery на страницу.
Add_ поставщик - это имя формы
private void add_supplier_Load(object sender, EventArgs e)
{
add_supplier childform = new add_supplier();
childform.MdiParent = this;
childform.Show();
}